//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.164 on Fri Nov  6 23:48:22 2026
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Input
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Output
cs_5_0
dcl_globalFlags refactoringAllowed
dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0},
                              { 0, 1.000000, 0, 0},
                              { 0, 0, 1.000000, 0},
                              { 0, 0, 0, 1.000000} }
dcl_constantbuffer CB0[373], dynamicIndexed
dcl_constantbuffer CB1[100], dynamicIndexed
dcl_constantbuffer CB2[12], immediateIndexed
dcl_constantbuffer CB3[1], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_comparison
dcl_resource_texture2darray (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_structured t3, 4
dcl_resource_structured t4, 228
dcl_resource_structured t5, 240
dcl_resource_texture2d (float,float,float,float) t6
dcl_resource_texturecubearray (float,float,float,float) t7
dcl_resource_texture2d (float,float,float,float) t8
dcl_resource_texture2darray (uint,uint,uint,uint) t9
dcl_resource_texture2darray (float,float,float,float) t10
dcl_resource_texturecubearray (float,float,float,float) t11
dcl_resource_texture2darray (float,float,float,float) t12
dcl_resource_texture2darray (float,float,float,float) t13
dcl_resource_texture2d (float,float,float,float) t14
dcl_resource_structured t15, 208
dcl_resource_structured t16, 96
dcl_resource_texture2darray (float,float,float,float) t17
dcl_resource_texture2darray (float,float,float,float) t18
dcl_resource_texture2darray (float,float,float,float) t19
dcl_resource_texture2darray (float,float,float,float) t20
dcl_resource_texture2darray (float,float,float,float) t21
dcl_resource_texture2d (float,float,float,float) t22
dcl_resource_texture2darray (uint,uint,uint,uint) t23
dcl_resource_structured t24, 4
dcl_uav_typed_texture2darray (float,float,float,float) u0
dcl_input vThreadGroupID.x
dcl_input vThreadIDInGroup.xy
dcl_temps 100
dcl_thread_group 8, 8, 1
ushr r0.x, vThreadGroupID.x, l(2)
iadd r0.x, r0.x, cb3[0].x
ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r0.x, r0.x, l(0), t24.xxxx
and r1.x, r0.x, l(0x00007fff)
ubfe r1.y, l(15), l(15), r0.x
and r2.x, vThreadGroupID.x, l(1)
ubfe r2.y, l(1), l(1), vThreadGroupID.x
ishl r0.yz, r2.xxyx, l(0, 3, 3, 0)
imad r0.yz, r1.xxyx, l(0, 16, 16, 0), r0.yyzy
iadd r2.xy, r0.yzyy, vThreadIDInGroup.xyxx
ushr r2.z, r0.x, l(30)
mov r2.w, l(0)
ld_indexable(texture2darray)(float,float,float,float) r0.x, r2.xyzw, t0.xyzw
eq r0.y, r0.x, l(0.000000)
if_nz r0.y
  ret
endif
ld_indexable(texture2darray)(uint,uint,uint,uint) r0.y, r2.xyzw, t23.xyzw
and r0.y, r0.y, l(2)
if_z r0.y
  ret
endif
utof r0.yz, r2.xxyx
ishl r0.w, r2.z, l(2)
add r1.zw, r0.yyyz, l(0.000000, 0.000000, 0.500000, 0.500000)
mul r3.xy, r1.zwzz, cb0[42].zwzz
mad r3.zw, r3.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000)


ld_indexable(texture2d)(float,float,float,float) r52.xyzw, l(0, 0, 0, 0), t125.xyzw

// w del píxel = 1 / (fila w de invVP · (ndc.x, -ndc.y, depth, 1))
mul r61.x, -r3.w, cb1[r0.w + 41].w
mad r61.x, cb1[r0.w + 40].w, r3.z, r61.x
mad r61.x, cb1[r0.w + 42].w, r0.x, r61.x
add r61.x, r61.x, cb1[r0.w + 43].w
div r61.x, l(1.0), r61.x

// factor (1 - conv/w)
div r61.y, r52.y, r61.x
add r61.y, -r61.y, l(1.0)

// x_mono = x_estéreo - sep * (1 - conv/w)
mad r3.z, -r52.x, r61.y, r3.z


mul r4.xyzw, -r3.wwww, cb1[r0.w + 41].xyzw
mad r4.xyzw, cb1[r0.w + 40].xyzw, r3.zzzz, r4.xyzw
mad r4.xyzw, cb1[r0.w + 42].xyzw, r0.xxxx, r4.xyzw
add r4.xyzw, r4.xyzw, cb1[r0.w + 43].xyzw
div r4.xyz, r4.xyzx, r4.wwww




eq r0.x, cb0[47].w, l(0.000000)
if_nz r0.x
  mov r5.xyz, -r4.xyzx
else
  mov r5.x, cb1[r0.w + 0].z
  mov r5.y, cb1[r0.w + 1].z
  mov r5.z, cb1[r0.w + 2].z
endif
dp3 r3.z, r5.xyzx, r5.xyzx
rsq r3.z, r3.z
mul r5.xyz, r3.zzzz, r5.xyzx
ld_indexable(texture2darray)(float,float,float,float) r6.xyzw, r2.xyzw, t17.xyzw
ld_indexable(texture2darray)(float,float,float,float) r7.xyzw, r2.xyzw, t18.xwyz
ld_indexable(texture2darray)(float,float,float,float) r8.xyz, r2.xyzw, t19.xyzw
ld_indexable(texture2darray)(float,float,float,float) r9.xyz, r2.xyzw, t20.xyzw
ld_indexable(texture2d)(float,float,float,float) r3.z, l(0, 0, 0, 0), t1.yzxw
mul r3.w, r3.z, cb0[282].y
eq r4.w, r3.w, l(0.000000)
and r4.w, r4.w, l(0x3f800000)
mad r3.z, r3.z, cb0[282].y, r4.w
rcp r3.z, r3.z
mul r9.xyz, r3.zzzz, r9.xyzx
if_nz cb0[280].w
  ld_indexable(texture2darray)(float,float,float,float) r4.w, r2.xyzw, t21.xyzw
  mul r4.w, r4.w, l(255.500000)
  ftou r4.w, r4.w
else
  mov r4.w, l(255)
endif
mul r10.xyz, r7.xzwx, l(255.500000, 255.500000, 255.500000, 0.000000)
ftou r10.xyz, r10.xyzx
ushr r5.w, r10.z, l(4)
bfi r11.x, l(4), l(8), r10.z, l(0)
ishl r11.y, r5.w, l(8)
or r7.zw, r10.xxxy, r11.xxxy
utof r7.zw, r7.zzzw
mad r7.zw, r7.zzzw, l(0.000000, 0.000000, 0.000488400517, 0.000488400517), l(0.000000, 0.000000, -1.000000, -1.000000)
add r5.w, -|r7.z|, l(1.000000)
add r10.z, -|r7.w|, r5.w
max r5.w, -r10.z, l(0.000000)
ge r11.xy, r7.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000)
movc r11.xy, r11.xyxx, -r5.wwww, r5.wwww
add r10.xy, r7.zwzz, r11.xyxx
dp3 r5.w, r10.xyzx, r10.xyzx
rsq r5.w, r5.w
mul r11.xyz, r5.wwww, r10.xyzx
mad r12.xyz, r8.xyzx, l(0.305306017, 0.305306017, 0.305306017, 0.000000), l(0.682171106, 0.682171106, 0.682171106, 0.000000)
mad r12.xyz, r8.xyzx, r12.xyzx, l(0.0125228781, 0.0125228781, 0.0125228781, 0.000000)
mul r13.xyz, r8.xyzx, r12.xyzx
mul r7.z, r7.y, r7.y
dp3 r7.w, r11.xyzx, r5.xyzx
max r8.w, r7.w, l(0.000100)
sqrt r7.x, r8.w
mad r14.xy, r7.xyxx, l(0.984375, 0.984375, 0.000000, 0.000000), l(0.00781250000, 0.00781250000, 0.000000, 0.000000)
sample_l_indexable(texture2d)(float,float,float,float) r14.xyz, r14.xyxx, t22.xyzw, s0, l(0.000000)
add r7.x, -r14.x, r14.y
mad r15.xyz, r13.xyzx, r7.xxxx, r14.xxxx
div r7.x, l(1.000000, 1.000000, 1.000000, 1.000000), r14.y
add r7.x, r7.x, l(-1.000000)
mul r9.w, r7.z, r7.z
mad r10.w, -r8.w, r9.w, r8.w
mad r10.w, r10.w, r8.w, r9.w
sqrt r10.w, r10.w
dp3 r11.w, -r5.xyzx, r11.xyzx
add r11.w, r11.w, r11.w
mad r14.xyw, r11.xyxz, -r11.wwww, -r5.xyxz
add r4.xyz, r4.xyzx, cb1[r2.z + 98].xyzx
ld_indexable(texture2darray)(uint,uint,uint,uint) r11.w, r2.xyzw, t9.yzwx
ushr r12.w, r11.w, l(24)
utof r12.w, r12.w
mul r13.w, r12.w, l(0.00392156886)
and r11.w, r11.w, l(0x00ffffff)
ige r15.w, cb0[280].z, l(0)
if_nz r15.w
  ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r15.w, cb0[280].z, l(16), t4.xxxx
  ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r16.xyz, cb0[280].z, l(24), t4.xyzx
  ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r16.w, cb0[280].z, l(116), t4.xxxx
  lt r15.w, l(0.000000), r15.w
  lt r16.w, l(0.000000), r16.w
  and r15.w, r15.w, r16.w
  dp3 r16.x, r11.xyzx, -r16.xyzx
  lt r16.y, l(0.000000), r16.x
  and r15.w, r15.w, r16.y
  if_nz r15.w
    ld_structured_indexable(structured_buffer, stride=96)(mixed,mixed,mixed,mixed) r17.xyzw, l(0), l(0), t16.xyzw
    ld_structured_indexable(structured_buffer, stride=96)(mixed,mixed,mixed,mixed) r18.xyzw, l(0), l(16), t16.xyzw
    ld_structured_indexable(structured_buffer, stride=96)(mixed,mixed,mixed,mixed) r19.xyzw, l(0), l(32), t16.xyzw
    ld_structured_indexable(structured_buffer, stride=96)(mixed,mixed,mixed,mixed) r20.xyzw, l(0), l(48), t16.xyzw
    mov r16.yzw, l(0,0,0,0)
    mov r15.w, l(0)
    mov r21.x, l(0)
    loop
      uge r21.y, r15.w, cb0[280].y
      breakc_nz r21.y
      mul r22.xyzw, r17.xyzw, icb[r15.w + 0].xxxx
      mad r22.xyzw, icb[r15.w + 0].yyyy, r18.xyzw, r22.xyzw
      mad r22.xyzw, icb[r15.w + 0].zzzz, r19.xyzw, r22.xyzw
      mad r22.xyzw, icb[r15.w + 0].wwww, r20.xyzw, r22.xyzw
      add r21.yzw, r4.xxyz, -r22.xxyz
      dp3 r22.x, r21.yzwy, r21.yzwy
      div r22.y, r22.x, r22.w
      lt r22.z, l(0.000000), r22.y
      ge r22.w, l(1.000000), r22.y
      and r22.z, r22.w, r22.z
      if_nz r22.z
        sqrt r22.x, r22.x
        div r16.yzw, r21.yyzw, r22.xxxx
        mov r21.x, r22.y
        break
      endif
      iadd r15.w, r15.w, l(1)
      mov r16.yzw, r21.yyzw
      mov r21.x, r22.y
    endloop
    ult r17.x, r15.w, cb0[280].y
    movc r15.w, r17.x, r15.w, l(-1)
    if_nz r0.x
      mov r17.xyz, -r4.xyzx
    else
      mov r17.x, cb1[r0.w + 0].z
      mov r17.y, cb1[r0.w + 1].z
      mov r17.z, cb1[r0.w + 2].z
    endif
    itof r0.x, r15.w
    ge r0.w, r0.x, l(0.000000)
    if_nz r0.w
      ld_structured_indexable(structured_buffer, stride=96)(mixed,mixed,mixed,mixed) r18.xyzw, l(0), l(76), t16.xyzw
      ld_structured_indexable(structured_buffer, stride=96)(mixed,mixed,mixed,mixed) r19.w, l(0), l(92), t16.xxxx
      ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r0.w, cb0[280].z, l(68), t4.xxxx
      ge r16.x, r16.x, l(0.000000)
      movc r16.x, r16.x, l(1.000000), l(-1.000000)
      mul r20.xyz, r11.xyzx, r16.xxxx
      ftoi r16.x, r18.x
      mov r19.xyz, r18.yzwy
      dp4 r17.w, r19.xyzw, icb[r15.w + 0].xyzw
      ge r18.x, l(0.000000), r17.w
      add r18.y, -r17.w, l(1.000000)
      add r18.y, -r18.y, r21.x
      div_sat r18.y, r18.y, r17.w
      movc r18.x, r18.x, l(0), r18.y
      dp3 r16.y, r17.xyzx, r16.yzwy
      add r16.z, r17.w, l(-1.000000)
      mul_sat r16.z, r16.z, l(-3.33333325)
      mad r16.w, r16.z, l(-2.000000), l(3.000000)
      mul r16.z, r16.z, r16.z
      mul r16.z, r16.z, r16.w
      mad r16.z, r16.z, l(512.000000), l(8.000000)
      mul_sat r16.y, r16.z, r16.y
      mad r16.y, r16.y, -r18.x, r18.x
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r17.xyzw, r0.w, l(0), t15.xyzw
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r18.xyzw, r0.w, l(16), t15.xyzw
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r19.x, r0.w, l(32), t15.xxxx
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r16.z, r0.w, l(76), t15.xxxx
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r21.xy, r0.w, l(96), t15.xyxx
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r22.xyz, r0.w, l(128), t15.xyzx
      iadd r16.w, r15.w, r0.w
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r23.xyz, r16.w, l(64), t15.xyzx
      add r22.xyz, r4.xyzx, r22.xyzx
      mul r16.z, r16.z, r23.z
      mul r20.xyz, r16.zzzz, r20.xyzx
      iadd r16.z, r15.w, l(1)
      iadd r16.x, r16.x, l(-1)
      imin r16.z, r16.x, r16.z
      itof r16.z, r16.z
      ne r0.x, r0.x, r16.z
      lt r20.w, l(0.000000), r16.y
      and r0.x, r0.x, r20.w
      round_z r20.w, cb0[61].z
      mad r21.zw, r20.wwww, l(0.000000, 0.000000, 2.083000, 4.867000), r0.yyyz
      dp2 r20.w, r21.zwzz, l(0.0671105608, 0.00583714992, 0.000000, 0.000000)
      frc r20.w, r20.w
      mul r20.w, r20.w, l(52.982918)
      frc r20.w, r20.w
      ge r20.w, r16.y, r20.w
      and r0.x, r0.x, r20.w
      if_nz r0.x
        itof r0.x, r0.w
        add r0.x, r16.z, r0.x
        ftoi r0.x, r0.x
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r24.xyzw, r0.x, l(48), t15.zwxy
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r25.xyz, r0.x, l(36), t15.yxzx
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r26.xyz, r0.x, l(64), t15.xyzx
        div r0.x, r26.z, r23.z
        mul r20.xyz, r0.xxxx, r20.xyzx
        mov r23.xy, r26.xyxx
        mov r26.x, r25.y
        mov r19.y, r25.z
      else
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r24.xyzw, r16.w, l(48), t15.zwxy
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r25.xyz, r16.w, l(36), t15.yxzx
        mov r26.x, r25.y
        mov r19.y, r25.z
      endif
      add r20.xyz, r20.xyzx, r22.xyzx
      mov r26.yzw, r17.xxyz
      mov r20.w, l(1.000000)
      dp4 r0.x, r26.yzwx, r20.xyzw
      mov r25.y, r17.w
      mov r25.zw, r18.xxxy
      dp4 r0.w, r25.yzwx, r20.xyzw
      mov r19.zw, r18.zzzw
      dp4 r17.x, r19.zwxy, r20.xyzw
      mul r18.xy, r0.xwxx, r24.zwzz
      mov r17.y, l(1.000000)
      dp2 r0.x, r24.xyxx, r17.xyxx
      mad_sat r16.zw, r18.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000), l(0.000000, 0.000000, 0.500000, 0.500000)
      mul r16.zw, r21.xxxy, r16.zzzw
      mad r16.zw, r16.zzzw, cb0[83].zzzw, r23.xxxy
      add r0.x, r0.x, l(0.0000152587891)
      mad r17.xy, r16.zwzz, cb0[83].xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
      round_ni r17.xy, r17.xyxx
      mad r16.zw, r16.zzzw, cb0[83].xxxy, -r17.xxxy
      add r18.xyzw, r16.zzww, l(0.500000, 1.000000, 0.500000, 1.000000)
      mul r19.xyzw, r18.xxzz, r18.xxzz
      mul r20.yw, r19.yyyw, l(0.000000, 0.040816, 0.000000, 0.040816)
      mad r17.zw, r19.xxxz, l(0.000000, 0.000000, 0.500000, 0.500000), -r16.zzzw
      add r18.xz, -r16.zzwz, l(1.000000, 0.000000, 1.000000, 0.000000)
      min r19.xy, r16.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000)
      mad r18.xz, -r19.xxyx, r19.xxyx, r18.xxzx
      max r19.xy, r16.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000)
      mad r18.yw, -r19.xxxy, r19.xxxy, r18.yyyw
      add r18.xyzw, r18.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000)
      mul r19.z, r18.y, l(0.081632)
      mul r21.xy, r17.wzww, l(0.081632, 0.081632, 0.000000, 0.000000)
      mul r17.zw, r18.xxxz, l(0.000000, 0.000000, 0.081632, 0.081632)
      mul r21.z, r18.w, l(0.081632)
      mov r19.x, r21.y
      mad r19.yw, r16.zzzz, l(0.000000, -0.081632, 0.000000, 0.081632), l(0.000000, 0.163264, 0.000000, 0.081632)
      mad r18.xz, r16.zzzz, l(-0.081632, 0.000000, 0.081632, 0.000000), l(0.081632, 0.000000, 0.163264, 0.000000)
      mov r18.y, r17.z
      mov r18.w, r20.y
      add r19.xyzw, r18.xyzw, r19.xyzw
      mad r21.yw, r16.wwww, l(0.000000, -0.081632, 0.000000, 0.081632), l(0.000000, 0.163264, 0.000000, 0.081632)
      mad r20.xz, r16.wwww, l(-0.081632, 0.000000, 0.081632, 0.000000), l(0.081632, 0.000000, 0.163264, 0.000000)
      mov r20.y, r17.w
      add r21.xyzw, r20.xyzw, r21.xyzw
      div r18.xyzw, r18.xyzw, r19.xyzw
      add r18.xyzw, r18.xyzw, l(-3.500000, -1.500000, 0.500000, 2.500000)
      div r20.xyzw, r20.xyzw, r21.xyzw
      add r20.xyzw, r20.xyzw, l(-3.500000, -1.500000, 0.500000, 2.500000)
      mul r18.xyzw, r18.wxyz, cb0[83].zzzz
      mul r20.xyzw, r20.xwyz, cb0[83].wwww
      mov r22.xzw, r18.yyzw
      mov r22.y, r20.x
      mad r23.xyzw, r17.xyxy, cb0[83].zwzw, r22.xyzy
      mad r16.zw, r17.xxxy, cb0[83].zzzw, r22.wwwy
      mov r18.y, r22.y
      mov r22.y, r20.z
      mad r24.xyzw, r17.xyxy, cb0[83].zwzw, r22.xyzy
      mad r17.zw, r17.xxxy, cb0[83].zzzw, r22.wwwy
      mov r18.z, r22.y
      mad r25.xyzw, r17.xyxy, cb0[83].zwzw, r18.xyxz
      mov r22.y, r20.w
      mad r26.xyzw, r17.xyxy, cb0[83].zwzw, r22.xyzy
      mad r18.yz, r17.xxyx, cb0[83].zzwz, r22.wwyw
      mov r18.w, r22.y
      mad r27.xy, r17.xyxx, cb0[83].zwzz, r18.xwxx
      mov r20.xzw, r22.xxzw
      mad r22.xyzw, r17.xyxy, cb0[83].zwzw, r20.xyzy
      mad r20.zw, r17.xxxy, cb0[83].zzzw, r20.wwwy
      mov r20.x, r18.x
      mad r17.xy, r17.xyxx, cb0[83].zwzz, r20.xyxx
      mul r28.xyzw, r19.xyzw, r21.xxxx
      mul r29.xyzw, r19.xyzw, r21.yyyy
      mul r30.xyzw, r19.xyzw, r21.zzzz
      mul r19.xyzw, r19.xyzw, r21.wwww
      sample_c_lz_indexable(texture2d)(float,float,float,float) r0.w, r23.xyxx, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r23.zwzz, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r16.z, r16.zwzz, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r25.xyxx, t14.xxxx, s2, r0.x
      mov r18.w, l(0)
      mov r20.x, l(0)
      loop
        ige r20.y, r20.x, l(1)
        breakc_nz r20.y
        mad r20.y, r28.x, r0.w, r18.w
        mad r20.y, r28.y, r18.x, r20.y
        mad r20.y, r28.z, r16.z, r20.y
        mad r18.w, r28.w, r16.w, r20.y
        iadd r20.x, r20.x, l(1)
      endloop
      sample_c_lz_indexable(texture2d)(float,float,float,float) r0.w, r24.xyxx, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r16.z, r24.zwzz, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r17.zwzz, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r25.zwzz, t14.xxxx, s2, r0.x
      mov r17.w, r18.w
      mov r18.x, l(0)
      loop
        ige r20.x, r18.x, l(1)
        breakc_nz r20.x
        mad r20.x, r29.x, r0.w, r17.w
        mad r20.x, r29.y, r16.z, r20.x
        mad r20.x, r29.z, r16.w, r20.x
        mad r17.w, r29.w, r17.z, r20.x
        iadd r18.x, r18.x, l(1)
      endloop
      sample_c_lz_indexable(texture2d)(float,float,float,float) r0.w, r26.xyxx, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r16.z, r26.zwzz, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r18.yzyy, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r17.z, r27.xyxx, t14.xxxx, s2, r0.x
      mov r18.x, r17.w
      mov r18.y, l(0)
      loop
        ige r18.z, r18.y, l(1)
        breakc_nz r18.z
        mad r18.z, r30.x, r0.w, r18.x
        mad r18.z, r30.y, r16.z, r18.z
        mad r18.z, r30.z, r16.w, r18.z
        mad r18.x, r30.w, r17.z, r18.z
        iadd r18.y, r18.y, l(1)
      endloop
      sample_c_lz_indexable(texture2d)(float,float,float,float) r0.w, r22.xyxx, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r16.z, r22.zwzz, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r16.w, r20.zwzz, t14.xxxx, s2, r0.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r0.x, r17.xyxx, t14.xxxx, s2, r0.x
      mov r17.x, r18.x
      mov r17.y, l(0)
      loop
        ige r17.z, r17.y, l(1)
        breakc_nz r17.z
        mad r17.z, r19.x, r0.w, r17.x
        mad r17.z, r19.y, r16.z, r17.z
        mad r17.z, r19.z, r16.w, r17.z
        mad r17.x, r19.w, r0.x, r17.z
        iadd r17.y, r17.y, l(1)
      endloop
      ilt r0.x, r15.w, r16.x
      add r0.w, -r17.x, l(1.000000)
      mad r0.w, r16.y, r0.w, r17.x
      movc r0.x, r0.x, r17.x, r0.w
    else
      mov r0.x, l(1.000000)
    endif
    mov r16.xyz, r0.xxxx
  else
    mov r16.xyz, l(1.000000,1.000000,1.000000,0)
  endif
else
  mov r16.xyz, l(1.000000,1.000000,1.000000,0)
endif
ishl r0.x, cb0[289].y, l(1)
iadd r0.x, r0.x, r1.y
imad r0.x, r0.x, cb0[289].x, r1.x
imul null, r0.w, r2.z, cb0[289].x
imul null, r0.w, r0.w, cb0[289].y
imad r0.x, r0.w, l(6), r0.x
ishl r0.x, r0.x, l(4)
ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r0.w, r0.x, l(0), t3.xxxx
and r0.w, r0.w, l(0x0000ffff)
ld_indexable(texture2darray)(float,float,float,float) r17.xyzw, r2.xyzw, t13.xyzw
ld_indexable(texture2d)(float,float,float,float) r1.x, l(0, 0, 0, 0), t2.xyzw
mul r1.y, r1.x, cb0[282].y
eq r1.y, r1.y, l(0.000000)
and r1.y, r1.y, l(0x3f800000)
mad r1.x, r1.x, cb0[282].y, r1.y
rcp r1.x, r1.x
movc r1.x, cb0[360].y, l(1.000000), r1.x
mul r17.xyz, r1.xxxx, r17.xyzx
mul r17.xyz, r17.wwww, r17.xyzx
mul r17.xyz, r15.xyzx, r17.xyzx
mad r1.x, -r7.y, r7.y, l(1.000000)
sqrt r1.y, r1.x
mad r1.y, r7.y, r7.y, r1.y
mul r15.w, r8.w, r8.w
mul r15.w, r1.x, r15.w
mad_sat r1.x, r1.x, r1.x, r15.w
mul r1.x, r1.x, r1.y
mad r10.xyz, -r10.xyzx, r5.wwww, r14.xywx
mad r10.xyz, r1.xxxx, r10.xyzx, r11.xyzx
min r1.x, r9.w, l(1.000000)
mad r1.y, r1.x, l(-2.000000), l(3.000000)
mul r1.x, r1.x, r1.x
mul r1.x, r1.x, r1.y
min r1.x, r1.x, l(1.000000)
add r18.xyz, -r10.xyzx, r14.xywx
mad r18.xyz, r1.xxxx, r18.xyzx, r10.xyzx
mov r10.xyz, r17.xyzx
mov r1.x, r17.w
mov r1.y, l(0)
loop
  uge r5.w, r1.y, r0.w
  breakc_nz r5.w
  iadd r1.y, r1.y, l(1)
  lt r5.w, r1.x, l(1.000000)
  if_nz r5.w
    ushr r5.w, r1.y, l(1)
    iadd r5.w, r0.x, r5.w
    ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r5.w, r5.w, l(0), t3.xxxx
    bfi r9.w, l(1), l(4), r1.y, l(0)
    ushr r5.w, r5.w, r9.w
    and r5.w, r5.w, l(0x0000ffff)
    ld_structured_indexable(structured_buffer, stride=240)(mixed,mixed,mixed,mixed) r19.xyzw, r5.w, l(0), t5.xyzw
    and r9.w, r4.w, r19.x
    if_nz r9.w
      ld_structured_indexable(structured_buffer, stride=240)(mixed,mixed,mixed,mixed) r20.xyzw, r5.w, l(16), t5.xyzw
      ld_structured_indexable(structured_buffer, stride=240)(mixed,mixed,mixed,mixed) r21.xyzw, r5.w, l(32), t5.xyzw
      ld_structured_indexable(structured_buffer, stride=240)(mixed,mixed,mixed,mixed) r22.xyzw, r5.w, l(48), t5.xyzw
      ld_structured_indexable(structured_buffer, stride=240)(mixed,mixed,mixed,mixed) r23.xyzw, r5.w, l(64), t5.zxyw
      ld_structured_indexable(structured_buffer, stride=240)(mixed,mixed,mixed,mixed) r24.xyzw, r5.w, l(80), t5.yzxw
      ld_structured_indexable(structured_buffer, stride=240)(mixed,mixed,mixed,mixed) r25.xyzw, r5.w, l(96), t5.xyzw
      ld_structured_indexable(structured_buffer, stride=240)(mixed,mixed,mixed,mixed) r26.xyzw, r5.w, l(112), t5.zxyw
      ld_structured_indexable(structured_buffer, stride=240)(mixed,mixed,mixed,mixed) r27.xyzw, r5.w, l(128), t5.xyzw
      ld_structured_indexable(structured_buffer, stride=240)(mixed,mixed,mixed,mixed) r28.xyzw, r5.w, l(144), t5.xyzw
      ld_structured_indexable(structured_buffer, stride=240)(mixed,mixed,mixed,mixed) r29.xyzw, r5.w, l(160), t5.zwxy
      ld_structured_indexable(structured_buffer, stride=240)(mixed,mixed,mixed,mixed) r30.xyzw, r5.w, l(208), t5.xyzw
      ld_structured_indexable(structured_buffer, stride=240)(mixed,mixed,mixed,mixed) r31.xyzw, r5.w, l(224), t5.xyzw
      ige r9.w, r31.w, l(0)
      movc r32.xyz, r9.wwww, r18.xyzx, r14.xywx
      add r33.xyz, r4.xyzx, -r24.xywx
      mov r34.xy, r26.xwxx
      mov r34.z, r27.x
      dp3 r35.x, r33.xyzx, r34.xyzx
      mov r26.x, r25.w
      dp3 r35.y, r33.xyzx, r26.xyzx
      dp3 r35.z, r33.xyzx, r25.xyzx
      add r21.yzw, r4.xxyz, -r21.yyzw
      mov r24.xy, r23.xwxx
      dp3 r33.x, r21.yzwy, r24.xyzx
      mov r23.x, r22.w
      dp3 r33.y, r21.yzwy, r23.xyzx
      dp3 r33.z, r21.yzwy, r22.xyzx
      dp3 r24.x, r32.xyzx, r24.xyzx
      dp3 r24.y, r32.xyzx, r23.xyzx
      dp3 r24.z, r32.xyzx, r22.xyzx
      ieq r15.w, r20.x, l(2)
      if_nz r15.w
        dp3 r15.w, r24.xyzx, r33.xyzx
        add r16.w, r15.w, r15.w
        dp3 r19.x, r33.xyzx, r33.xyzx
        mad r19.x, -r20.y, r20.y, r19.x
        mul r19.x, r19.x, l(4.000000)
        mad r16.w, r16.w, r16.w, -r19.x
        sqrt r16.w, r16.w
        mad r15.w, -r15.w, l(2.000000), r16.w
        mul r15.w, |r15.w|, l(0.500000)
        and r16.w, r15.w, l(0x7fffffff)
        ult r16.w, l(0x7f800000), r16.w
        movc r15.w, r16.w, l(-1.000000), r15.w
        max r15.w, r21.x, r15.w
        mad r21.yzw, r15.wwww, r32.xxyz, r4.xxyz
        add r32.xyz, -r19.yzwy, r21.yzwy
        dp3 r16.w, r35.xyzx, r35.xyzx
        sqrt r16.w, r16.w
        add r19.x, r27.y, -r28.x
        add r19.x, r16.w, -r19.x
        max r19.x, r19.x, l(0.000000)
        max r21.y, r28.x, l(0.000100)
        div r19.x, r19.x, r21.y
        add r19.x, -r19.x, l(1.000000)
        max r19.x, r19.x, l(0.000000)
        add r21.y, r27.y, -r29.x
        ge r16.w, r21.y, r16.w
        add r21.yzw, r4.xxyz, -r19.yyzw
        dp3 r22.x, r21.yzwy, r21.yzwy
        rsq r22.x, r22.x
        mul r21.yzw, r21.yyzw, r22.xxxx
        dp3 r21.y, r11.xyzx, r21.yzwy
        mad_sat r21.y, r21.y, l(-2.500000), l(1.500000)
        movc r16.w, r16.w, l(1.000000), r21.y
        mul r16.w, r16.w, r19.x
      else
        ieq r19.x, r20.x, l(1)
        if_nz r19.x
          ld_structured_indexable(structured_buffer, stride=240)(mixed,mixed,mixed,mixed) r22.xyzw, r5.w, l(176), t5.xyzw
          ld_structured_indexable(structured_buffer, stride=240)(mixed,mixed,mixed,mixed) r23.xyzw, r5.w, l(192), t5.wxyz
          dp3 r34.x, r32.xyzx, r34.xyzx
          dp3 r34.y, r32.xyzx, r26.xyzx
          dp3 r34.z, r32.xyzx, r25.xyzx
          dp3 r5.w, r34.xyzx, r34.xyzx
          rsq r5.w, r5.w
          mul r21.yzw, r5.wwww, r34.xxyz
          rcp r25.xyz, r24.xyzx
          add r26.xyz, -r20.yzwy, -r33.xyzx
          mul r26.xyz, r25.xyzx, r26.xyzx
          add r20.xyz, r20.yzwy, -r33.xyzx
          mul r20.xyz, r25.xyzx, r20.xyzx
          lt r24.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r24.xyzx
          movc r20.xyz, r24.xyzx, r20.xyzx, r26.xyzx
          min r5.w, r20.y, r20.x
          min r5.w, r20.z, r5.w
          max r15.w, r21.x, r5.w
          mad r20.xyz, r15.wwww, r32.xyzx, r4.xyzx
          add r32.xyz, -r19.yzwy, r20.xyzx
          add r20.xyz, r27.yzwy, r35.xyzx
          add r24.xyz, r27.yzwy, -r35.xyzx
          mov r25.x, r28.w
          mov r25.yz, r29.zzwz
          max r25.xyz, r25.xyzx, l(0.000100, 0.000100, 0.000100, 0.000000)
          div r25.xyz, r20.xyzx, r25.xyzx
          max r26.xyz, r28.xyzx, l(0.000100, 0.000100, 0.000100, 0.000000)
          div r26.xyz, r24.xyzx, r26.xyzx
          min r5.w, r25.y, r25.x
          min r5.w, r25.z, r5.w
          min r19.x, r26.y, r26.x
          min r19.x, r26.z, r19.x
          min_sat r5.w, r5.w, r19.x
          mov r29.z, r22.x
          max r25.xyz, r29.xyzx, l(0.000100, 0.000100, 0.000100, 0.000000)
          div r24.xyz, r24.xyzx, r25.xyzx
          max r22.xyz, r22.yzwy, l(0.000100, 0.000100, 0.000100, 0.000000)
          div r20.xyz, r20.xyzx, r22.xyzx
          ge r22.xyz, r24.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
          and r19.x, r22.y, r22.x
          and r19.x, r22.z, r19.x
          ge r20.xyz, r20.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
          and r20.x, r20.y, r20.x
          and r20.x, r20.z, r20.x
          and r19.x, r19.x, r20.x
          add r19.yzw, r4.xxyz, -r19.yyzw
          dp3 r20.x, r19.yzwy, r19.yzwy
          rsq r20.x, r20.x
          mul r19.yzw, r19.yyzw, r20.xxxx
          dp3 r19.y, r11.xyzx, r19.yzwy
          mad_sat r19.y, r19.y, l(-2.500000), l(1.500000)
          movc r19.x, r19.x, l(1.000000), r19.y
          mul r5.w, r5.w, r19.x
          mad r19.xyz, r21.yzwy, l(4.000000, 4.000000, 4.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
          mul_sat r19.xyz, r23.yzwy, r19.xyzx
          mad r20.xyz, r21.yzwy, l(-4.000000, -4.000000, -4.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
          mov r23.yz, r30.xxyx
          mul_sat r20.xyz, r20.xyzx, r23.xyzx
          add r19.xyz, r19.xyzx, r20.xyzx
          add r19.x, r19.y, r19.x
          add r19.x, r19.z, r19.x
          min r19.x, r19.x, l(1.000000)
          mul r16.w, r5.w, r19.x
        else
          mov r16.w, l(1.000000)
          mov r15.w, l(0)
        endif
      endif
      mul r5.w, r16.w, r16.w
      mad r16.w, -r16.w, l(2.000000), l(3.000000)
      mul r5.w, r5.w, r16.w
      mul r5.w, r30.z, r5.w
      dp3 r16.w, r32.xyzx, r32.xyzx
      sqrt r16.w, r16.w
      div r15.w, r15.w, r16.w
      mul r15.w, r7.y, r15.w
      max r15.w, r15.w, l(0.000000)
      min r15.w, r7.y, r15.w
      add r16.w, r7.y, -r15.w
      mad r15.w, r7.y, r16.w, r15.w
      add r15.w, -r7.y, r15.w
      mad r15.w, r31.z, r15.w, r7.y
      movc r15.w, r9.w, r15.w, r7.y
      mad r16.w, -r15.w, l(0.700000), l(1.700000)
      mul r15.w, r15.w, r16.w
      mul r15.w, r31.y, r15.w
      mul r15.w, r15.w, l(6.000000)
      imax r16.w, -r31.w, r31.w
      iadd r16.w, r16.w, l(-1)
      if_z r9.w
        ishl r9.w, r16.w, l(2)
        mul r19.xyzw, r32.yyyy, cb0[r9.w + 88].xyzw
        mad r19.xyzw, cb0[r9.w + 87].xyzw, r32.xxxx, r19.xyzw
        mad r19.xyzw, cb0[r9.w + 89].xyzw, r32.zzzz, r19.xyzw
        add r19.xyzw, r19.xyzw, cb0[r9.w + 90].xyzw
        rcp r9.w, r19.w
        mul r19.xyz, r19.xyzx, l(1.000000, -1.000000, 1.000000, 0.000000)
        mul r19.xyz, r9.wwww, r19.xyzx
        mad r20.xy, r19.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
        add r20.zw, cb0[288].yyyy, cb0[r16.w + 247].xxxy
        rcp r20.zw, r20.zzzw
        mul r21.xy, r20.zwzz, cb0[r16.w + 247].xyxx
        mad r20.zw, -r20.zzzw, cb0[r16.w + 247].xxxy, l(0.000000, 0.000000, 1.000000, 1.000000)
        mul r20.zw, r20.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000)
        exp r9.w, r15.w
        mul r21.zw, cb0[288].xxxx, cb0[r16.w + 247].xxxy
        add r21.zw, r21.zzzw, r21.zzzw
        div r21.zw, r9.wwww, r21.zzzw
        mad r20.zw, r20.xxxy, r21.xxxy, r20.zzzw
        add r21.xy, -r21.zwzz, l(1.000000, 1.000000, 0.000000, 0.000000)
        max r20.zw, r21.zzzw, r20.zzzw
        min r20.zw, r21.xxxy, r20.zzzw
        mad r20.zw, r20.zzzw, cb0[r16.w + 247].xxxy, cb0[r16.w + 247].zzzw
        sample_l_indexable(texture2d)(float,float,float,float) r21.xyz, r20.zwzz, t8.xyzw, s1, r15.w
        lt r22.xyzw, r20.xyxy, l(0.000000, 0.000000, 0.500000, 0.500000)
        or r9.w, r22.y, r22.x
        mad r19.xyz, r19.xyzx, l(0.500000, 0.500000, 1.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
        lt r19.xyz, l(1.000000, 1.000000, 1.000000, 0.000000), r19.xyzx
        or r19.x, r19.y, r19.x
        or r19.x, r19.z, r19.x
        or r9.w, r9.w, r19.x
        dp3 r19.x, cb0[r16.w + 215].xyzx, r32.xyzx
        lt r19.x, r19.x, l(0.000000)
        mov_sat r19.yz, r20.xxyx
        mad r19.yz, r19.yyzy, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000)
        lt r20.zw, r3.xxxy, r20.xxxy
        and r20.zw, r20.zzzw, l(0, 0, 1, 1)
        and r22.xy, r22.zwzz, l(1, 1, 0, 0)
        xor r20.zw, r20.zzzw, r22.xxxy
        mad r20.xy, -r1.zwzz, cb0[42].zwzz, r20.xyxx
        mul r20.xy, |r20.xyxx|, l(100.000000, 100.000000, 0.000000, 0.000000)
        min r20.xy, r20.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
        mul r22.xy, r20.xyxx, r20.xyxx
        mad r20.xy, -r20.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(3.000000, 3.000000, 0.000000, 0.000000)
        mul r20.xy, r20.xyxx, r22.xyxx
        mad r19.yz, -|r19.yyzy|, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, 2.000000, 2.000000, 0.000000)
        min r19.yz, r19.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000)
        add r19.yz, r19.yyzy, l(0.000000, -1.000000, -1.000000, 0.000000)
        mad r19.yz, r20.xxyx, r19.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000)
        movc r19.yz, r20.zzwz, r19.yyzy, l(0,1.000000,1.000000,0)
        mul r19.y, r19.z, r19.y
        or r9.w, r9.w, r19.x
        movc r9.w, r9.w, l(0), r19.y
      else
        imul null, r16.w, r16.w, cb0[291].z
        itof r32.w, r16.w
        sample_l_indexable(texturecubearray)(float,float,float,float) r21.xyz, r32.xyzw, t7.xyzw, s1, r15.w
        mov r9.w, l(1.000000)
      endif
      mul r19.xyz, r31.xxxx, r21.xyzx
      min r19.xyz, r19.xyzx, l(65504.000000, 65504.000000, 65504.000000, 0.000000)
      mul r19.xyz, r15.xyzx, r19.xyzx
      mad r15.w, r5.w, r9.w, r1.x
      mov_sat r1.x, r15.w
      add_sat r15.w, -r1.x, r15.w
      mad r5.w, r5.w, r9.w, -r15.w
      mul r5.w, r30.w, r5.w
      mad r10.xyz, r19.xyzx, r5.wwww, r10.xyzx
    endif
  endif
endloop
if_nz cb0[280].x
  lt r0.x, r1.x, l(1.000000)
  if_nz r0.x
    mad r0.x, -r7.y, l(0.700000), l(1.700000)
    mul r0.x, r0.x, r7.y
    mul r0.x, r0.x, l(6.000000)
    mov r18.w, l(0)
    sample_l_indexable(texturecubearray)(float,float,float,float) r1.yzw, r18.xyzw, t11.wxyz, s1, r0.x
    min r1.yzw, r1.yyzw, l(0.000000, 65504.000000, 65504.000000, 65504.000000)
    mul r1.yzw, r1.yyzw, r15.xxyz
    add r0.x, r1.x, l(1.000000)
    mov_sat r0.w, r0.x
    add_sat r0.x, -r0.w, r0.x
    add r0.x, -r0.x, l(1.000000)
    movc r0.x, cb0[281].x, r0.x, l(0)
    mad r10.xyz, r1.yzwy, r0.xxxx, r10.xyzx
  endif
endif
add r1.xyz, r16.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
add r14.xyw, r4.xyxz, cb1[r2.z + 96].xyxz
add r14.xyw, r14.xyxw, -cb2[7].xyxz
dp3 r0.x, r14.xywx, r14.xywx
sqrt r0.x, r0.x
rcp r0.w, r0.x
mul r1.w, r0.w, cb2[0].x
mad r1.w, -r1.w, r1.w, l(1.000000)
max r1.w, r1.w, l(0.000000)
sqrt r1.w, r1.w
mul r3.xy, r0.xxxx, cb2[2].xzxx
mad r15.xy, cb2[2].xzxx, cb2[0].xxxx, -r3.xyxx
mul r15.xy, r15.xyxx, l(1.442695, 1.442695, 0.000000, 0.000000)
mad r15.zw, r3.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, 1.000000, 1.000000)
exp r15.xy, r15.xyxx
max r0.x, -cb0[287].z, l(0.000000)
round_pi r0.x, r0.x
exp r0.x, r0.x
mad r5.w, -r12.w, l(0.00392156886), l(1.000000)
dp2 r9.w, r6.wwww, r6.wwww
add r12.w, -r8.w, l(1.000000)
mul r16.x, r12.w, r12.w
mul r16.x, r16.x, r16.x
mul r12.w, r12.w, r16.x
mov r17.xyz, l(0,0,0,0)
mov r16.xyzw, l(0,0,0,0)
loop
  uge r17.w, r16.w, cb0[279].x
  breakc_nz r17.w
  ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r17.w, r16.w, l(12), t4.xxxx
  and r17.w, r4.w, r17.w
  if_nz r17.w
    ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r17.w, r16.w, l(16), t4.xxxx
    ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r18.xyzw, r16.w, l(24), t4.xyzw
    lt r17.w, l(0.000000), r17.w
    dp3 r19.x, r11.xyzx, -r18.xyzx
    lt r19.y, l(0.000000), r19.x
    and r17.w, r17.w, r19.y
    if_nz r17.w
      ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r20.xyzw, r16.w, l(56), t4.xyzw
      ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r21.xyzw, r16.w, l(88), t4.xyzw
      ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r22.xyzw, r16.w, l(104), t4.xyzw
      ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r23.xyzw, r16.w, l(152), t4.xyzw
      ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r17.w, r16.w, l(168), t4.xxxx
      max r19.y, |r18.y|, l(5.960464478E-08)
      rcp r19.y, r19.y
      ge r19.z, -r18.y, l(0.000000)
      movc r19.z, r19.z, r4.y, l(-16777216.000000)
      add r19.w, r19.z, -cb0[74].y
      add r19.z, -r19.z, cb0[74].y
      mul r19.z, r19.y, r19.z
      max r19.zw, r19.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000)
      mul r19.w, -r19.w, cb0[75].x
      mul r19.w, r19.w, l(1.442695)
      exp r19.w, r19.w
      mul r19.y, r19.y, cb0[75].y
      mad r19.y, r19.w, r19.y, r19.z
      mul r19.y, r19.y, cb0[74].x
      mul r19.y, r19.y, l(-1.442695)
      exp r19.y, r19.y
      mul r19.yzw, r19.yyyy, r21.xxyz
      ige r17.w, r17.w, l(0)
      if_nz r17.w
        dp3 r17.w, r14.xywx, -r18.xyzx
        mul r17.w, r0.w, r17.w
        ge r21.x, r17.w, -r1.w
        if_nz r21.x
          mad r21.x, -r17.w, r17.w, l(1.000000)
          max r21.x, r21.x, l(0.000000)
          sqrt r21.x, r21.x
          mul r21.y, |r17.w|, |r17.w|
          mul r24.xy, r3.xyxx, r21.yyyy
          mad r21.yz, -r21.yyyy, r3.xxyx, r15.zzwz
          mul r21.yz, r21.yyzy, l(0.000000, 0.761643, 0.761643, 0.000000)
          mad r24.xy, r24.xyxx, l(0.273828, 0.273828, 0.000000, 0.000000), l(1.477210, 1.477210, 0.000000, 0.000000)
          mul r24.xy, r3.xyxx, r24.xyxx
          sqrt r24.xy, r24.xyxx
          mad r24.xy, |r17.wwww|, r3.xyxx, r24.xyxx
          rcp r24.xy, r24.xyxx
          mul r21.yz, r21.yyzy, r24.xxyx
          mad r21.yz, |r17.wwww|, l(0.000000, 0.500000, 0.500000, 0.000000), r21.yyzy
          mul r21.yz, r15.xxyx, r21.yyzy
          lt r17.w, r17.w, l(0.000000)
          mul r24.xy, r3.xyxx, r21.xxxx
          mad r24.zw, cb2[2].xxxz, cb2[0].xxxx, -r24.xxxy
          mul r24.zw, r24.zzzw, l(0.000000, 0.000000, 1.442695, 1.442695)
          exp r24.zw, r24.zzzw
          rsq r25.xy, r24.xyxx
          dp2 r21.x, r24.xxxx, r25.xxxx
          add r21.x, r21.x, r25.x
          mul r26.x, r21.x, r24.z
          dp2 r21.x, r24.yyyy, r25.yyyy
          add r21.x, r21.x, r25.y
          mul r26.y, r21.x, r24.w
          mad r24.xy, r26.xyxx, l(1.253314, 1.253314, 0.000000, 0.000000), -r21.yzyy
          movc r21.xy, r17.wwww, r24.xyxx, r21.yzyy
          mul r21.xy, r21.xyxx, cb2[2].ywyy
          mul r17.w, r21.y, cb2[10].x
          mad r21.xyz, r21.xxxx, cb2[3].xyzx, r17.wwww
          mul r21.xyz, r21.xyzx, l(-1.442695, -1.442695, -1.442695, 0.000000)
          exp r21.xyz, r21.xyzx
          add r21.xyz, -r21.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
          add r17.w, r21.y, r21.x
          add r17.w, r21.z, r17.w
          mul r24.x, r17.w, l(0.333333343)
          mad r21.xyz, -r17.wwww, l(0.333333343, 0.333333343, 0.333333343, 0.000000), r21.xyzx
          mad r21.xyz, r21.xyzx, cb2[10].wwww, r24.xxxx
          mad r21.xyz, -r21.xyzx, cb2[11].xxxx, l(1.000000, 1.000000, 1.000000, 0.000000)
          mul r19.yzw, r19.yyzw, r21.xxyz
          mov r17.w, l(1.000000)
        else
          mov r19.yzw, l(0,0,0,0)
          mov r17.w, l(0)
        endif
      else
        mov r17.w, l(1.000000)
      endif
      if_nz r18.w
        ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r21.xyz, r16.w, l(0), t4.xyzx
        ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r24.xyzw, r16.w, l(40), t4.xyzw
        ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r25.xyz, r16.w, l(72), t4.xyzx
        add r21.xyz, r4.xyzx, -r21.xyzx
        dp3 r20.x, r21.xyzx, r20.xyzx
        dp3 r20.y, r21.xyzx, r25.xyzx
        mad r20.xy, r20.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
        ieq r18.w, r18.w, l(2)
        frc r21.xy, r20.xyxx
        movc r20.xy, r18.wwww, r21.xyxx, r20.xyxx
        add r21.xy, r24.xyxx, cb0[287].yyyy
        rcp r21.xy, r21.xyxx
        mul r25.xy, r24.xyxx, r21.xyxx
        mad r21.xy, -r21.xyxx, r24.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
        mul r21.xy, r21.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
        mul r25.zw, r24.xxxy, cb0[287].xxxx
        add r25.zw, r25.zzzw, r25.zzzw
        div r25.zw, r0.xxxx, r25.zzzw
        mad r20.xy, r20.xyxx, r25.xyxx, r21.xyxx
        add r21.xy, -r25.zwzz, l(1.000000, 1.000000, 0.000000, 0.000000)
        max r20.xy, r25.zwzz, r20.xyxx
        min r20.xy, r21.xyxx, r20.xyxx
        mad r20.xy, r20.xyxx, r24.xyxx, r24.zwzz
        sample_l_indexable(texture2d)(float,float,float,float) r20.xyz, r20.xyxx, t6.xyzw, s1, l(0.000000)
        mul r19.yzw, r19.yyzw, r20.xxyz
      endif
      mul r19.yzw, r17.wwww, r19.yyzw
      ige r17.w, r20.w, l(0)
      lt r18.w, l(0.000000), r22.w
      and r17.w, r17.w, r18.w
      mad r20.xyz, r22.wwww, r1.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
      movc r20.xyz, r17.wwww, r20.xyzx, l(1.000000,1.000000,1.000000,0)
      and r17.w, r11.w, r21.w
      movc r17.w, r17.w, l(1.000000), l(0)
      mad r18.w, r23.w, r5.w, r13.w
      mul r17.w, r17.w, r18.w
      mad r17.w, -r17.w, cb0[282].z, l(1.000000)
      min r20.xyz, r17.wwww, r20.xyzx
      ge r17.w, r19.x, l(0.000000)
      add r18.w, r9.w, r19.x
      add_sat r18.w, r18.w, l(-1.000000)
      add r18.w, r18.w, l(-1.000000)
      mad r18.w, cb0[285].x, r18.w, l(1.000000)
      movc r17.w, r17.w, r18.w, l(1.000000)
      mul r21.xyz, r17.wwww, r20.xyzx
      add r24.xyz, -r22.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
      mul r25.xyz, r21.xyzx, r21.xyzx
      mul r25.xyz, r21.xyzx, r25.xyzx
      mad r20.xyz, -r20.xyzx, r17.wwww, l(1.000000, 1.000000, 1.000000, 0.000000)
      mad r20.xyz, -r20.xyzx, r24.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
      mul r21.xyz, r22.xyzx, r21.xyzx
      mad r21.xyz, r25.xyzx, r24.xyzx, r21.xyzx
      add r21.xyz, -r20.xyzx, r21.xyzx
      mad r20.xyz, r23.zzzz, r21.xyzx, r20.xyzx
      mul r19.yzw, r19.yyzw, r20.xxyz
      max r17.w, r19.z, r19.y
      max r17.w, r19.w, r17.w
      lt r17.w, l(0.000000), r17.w
      if_nz r17.w
        ld_structured_indexable(structured_buffer, stride=228)(mixed,mixed,mixed,mixed) r17.w, r16.w, l(128), t4.xxxx
        max r17.w, r7.z, r17.w
        mov_sat r18.w, r19.x
        dp3 r18.x, -r18.xyzx, r5.xyzx
        mad r18.y, r18.x, l(2.000000), l(2.000000)
        max r18.y, r18.y, l(5.960464478E-08)
        rsq r18.y, r18.y
        add r18.z, r7.w, r19.x
        mul_sat r18.z, r18.y, r18.z
        mad_sat r18.y, r18.y, r18.x, r18.y
        add r18.y, -r18.y, l(1.000000)
        mul r20.x, r18.y, r18.y
        mul r20.x, r20.x, r20.x
        mul r20.y, r18.y, r20.x
        mad r18.y, -r20.x, r18.y, l(1.000000)
        mad r20.xyz, r13.xyzx, r18.yyyy, r20.yyyy
        mul r17.w, r17.w, r17.w
        mad r18.y, r18.z, r17.w, -r18.z
        mad r18.y, r18.y, r18.z, l(1.000000)
        mad r18.z, -|r19.x|, r17.w, |r19.x|
        mad r18.z, r18.z, |r19.x|, r17.w
        sqrt r18.z, r18.z
        mul r18.z, r8.w, r18.z
        mul r18.y, r18.y, r18.y
        mad r18.z, |r19.x|, r10.w, r18.z
        mul r17.w, r17.w, l(0.159154937)
        mul r18.y, r18.z, r18.y
        max r18.y, r18.y, l(1.175494351E-38)
        div r17.w, r17.w, r18.y
        mul r20.xyz, r17.wwww, r20.xyzx
        mad r17.w, r7.y, r18.x, r7.y
        add r18.x, -|r19.x|, l(1.000000)
        mul r18.y, r18.x, r18.x
        mul r18.y, r18.y, r18.y
        mul r18.x, r18.x, r18.y
        add r17.w, r17.w, l(-0.500000)
        mad r18.x, r17.w, r18.x, l(1.000000)
        mad r17.w, r17.w, r12.w, l(1.000000)
        mul r17.w, r17.w, r18.x
        mul r17.w, r17.w, r18.w
        mul r17.w, r17.w, l(0.307334960)
        mul r18.xyz, r18.wwww, r20.xyzx
        mul r20.xyz, r19.yzwy, r17.wwww
        mul r20.xyz, r23.xxxx, r20.xyzx
        mul r18.xyz, r19.yzwy, r18.xyzx
        mul r18.xyz, r23.yyyy, r18.xyzx
      else
        mov r20.xyz, l(0,0,0,0)
        mov r18.xyz, l(0,0,0,0)
      endif
    else
      mov r20.xyz, l(0,0,0,0)
      mov r18.xyz, l(0,0,0,0)
    endif
    add r16.xyz, r16.xyzx, r20.xyzx
    add r17.xyz, r17.xyzx, r18.xyzx
  endif
  iadd r16.w, r16.w, l(1)
endloop
if_nz cb0[360].x
  add r0.x, r14.z, l(0.500000)
  ld_indexable(texture2darray)(float,float,float,float) r1.xyzw, r2.xyzw, t10.xyzw
  mul r1.xyz, r3.zzzz, r1.xyzx
  and r0.w, r4.w, cb0[284].y
  movc r0.w, r0.w, cb0[284].x, l(1.000000)
  mul r1.xyz, r0.wwww, r1.xyzx
  max r0.w, r13.y, r13.x
  max r0.w, r13.z, r0.w
  add r0.w, r0.w, l(-0.200000)
  mul_sat r0.w, r0.w, l(4.000000)
  mul r0.w, r0.w, cb0[282].w
  mad r3.xyz, r8.xyzx, r12.xyzx, -r6.xyzx
  mad r3.xyz, r0.wwww, r3.xyzx, r6.xyzx
  mul r3.xyz, r0.xxxx, r3.xyzx
  mad r1.xyz, r1.xyzx, r3.xyzx, -r9.xyzx
  mad r9.xyz, r1.wwww, r1.xyzx, r9.xyzx
endif
and r0.x, r4.w, cb0[284].w
movc r0.x, r0.x, cb0[284].z, l(1.000000)
mul r1.xyz, r0.xxxx, r10.xyzx
ftoi r0.xy, r0.yzyy
mov r0.zw, r2.zzzw
ld_indexable(texture2darray)(float,float,float,float) r0.x, r0.xyzw, t12.xyzw
add r0.y, -r0.x, l(1.000000)
mad r0.x, cb0[283].w, -r0.x, l(1.000000)
add r0.z, r0.y, r8.w
mad r0.w, r7.z, l(-16.000000), l(-1.000000)
exp r0.w, r0.w
log r0.z, |r0.z|
mul r0.z, r0.z, r0.w
exp r0.z, r0.z
add r0.z, r0.y, r0.z
add_sat r0.z, r0.z, l(-1.000000)
add r0.z, r0.z, l(-1.000000)
mul r0.w, r0.z, cb0[372].z
mad r0.z, cb0[372].z, r0.z, l(1.000000)
mad r0.w, cb0[283].w, r0.w, l(1.000000)
min r0.z, r0.z, r6.w
mad r3.xyz, r13.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000)
mad r4.xyz, r13.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), l(0.641700, 0.641700, 0.641700, 0.000000)
mad r5.xyz, r13.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), l(0.690300, 0.690300, 0.690300, 0.000000)
mad r7.yzw, r0.zzzz, r3.xxyz, r4.xxyz
mad r7.yzw, r7.yyzw, r0.zzzz, r5.xxyz
mul r7.yzw, r0.zzzz, r7.yyzw
max r7.yzw, r0.zzzz, r7.yyzw
min r0.y, r0.y, l(1.000000)
mad r8.xyz, r6.xyzx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000)
mad r10.xyz, r6.xyzx, l(-4.795100, -4.795100, -4.795100, 0.000000), l(0.641700, 0.641700, 0.641700, 0.000000)
mad r11.xyz, r6.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), l(0.690300, 0.690300, 0.690300, 0.000000)
mad r12.xyz, r0.yyyy, r8.xyzx, r10.xyzx
mad r12.xyz, r12.xyzx, r0.yyyy, r11.xyzx
mul r12.xyz, r0.yyyy, r12.xyzx
max r12.xyz, r0.yyyy, r12.xyzx
mad r3.xyz, r0.wwww, r3.xyzx, r4.xyzx
mad r3.xyz, r3.xyzx, r0.wwww, r5.xyzx
mul r3.xyz, r0.wwww, r3.xyzx
max r0.yzw, r0.wwww, r3.xxyz
mad r3.xyz, r0.xxxx, r8.xyzx, r10.xyzx
mad r3.xyz, r3.xyzx, r0.xxxx, r11.xyzx
mul r3.xyz, r0.xxxx, r3.xyzx
max r3.xyz, r0.xxxx, r3.xyzx
mul r4.xyz, r9.xyzx, r12.xyzx
mul r1.xyz, r1.xyzx, r7.yzwy
mul r3.xyz, r3.xyzx, r16.xyzx
mad r3.xyz, r6.xyzx, r3.xyzx, r4.xyzx
mad r0.xyz, r17.xyzx, r0.yzwy, r1.xyzx
mad r1.xyz, r13.xyzx, r7.xxxx, l(1.000000, 1.000000, 1.000000, 0.000000)
mul r0.xyz, r0.xyzx, r1.xyzx
mul r0.xyz, r3.wwww, r0.xyzx
mad r0.xyz, r3.xyzx, r3.wwww, r0.xyzx
mov r0.w, l(1.000000)
store_uav_typed u0.xyzw, r2.xyzz, r0.xyzw
ret
// Approximately 0 instruction slots used

///////////////////////////////// HLSL Code /////////////////////////////////
// // ---- Created with 3Dmigoto v0.6.164 on Fri Nov  6 23:48:22 2026
// struct t24_t {
//   float val[1];
// };
// StructuredBuffer<t24_t> t24 : register(t24);
//
// Texture2DArray<uint4> t23 : register(t23);
//
// Texture2D<float4> t22 : register(t22);
//
// Texture2DArray<float4> t21 : register(t21);
//
// Texture2DArray<float4> t20 : register(t20);
//
// Texture2DArray<float4> t19 : register(t19);
//
// Texture2DArray<float4> t18 : register(t18);
//
// Texture2DArray<float4> t17 : register(t17);
//
// struct t16_t {
//   float val[24];
// };
// StructuredBuffer<t16_t> t16 : register(t16);
//
// struct t15_t {
//   float val[52];
// };
// StructuredBuffer<t15_t> t15 : register(t15);
//
// Texture2D<float4> t14 : register(t14);
//
// Texture2DArray<float4> t13 : register(t13);
//
// Texture2DArray<float4> t12 : register(t12);
//
// TextureCubeArray<float4> t11 : register(t11);
//
// Texture2DArray<float4> t10 : register(t10);
//
// Texture2DArray<uint4> t9 : register(t9);
//
// Texture2D<float4> t8 : register(t8);
//
// TextureCubeArray<float4> t7 : register(t7);
//
// Texture2D<float4> t6 : register(t6);
//
// struct t5_t {
//   float val[60];
// };
// StructuredBuffer<t5_t> t5 : register(t5);
//
// struct t4_t {
//   float val[57];
// };
// StructuredBuffer<t4_t> t4 : register(t4);
//
// struct t3_t {
//   float val[1];
// };
// StructuredBuffer<t3_t> t3 : register(t3);
//
// Texture2D<float4> t2 : register(t2);
//
// Texture2D<float4> t1 : register(t1);
//
// Texture2DArray<float4> t0 : register(t0);
//
// SamplerComparisonState s2_s : register(s2);
//
// SamplerState s1_s : register(s1);
//
// SamplerState s0_s : register(s0);
//
// cbuffer cb3 : register(b3)
// {
//   float4 cb3[1];
// }
//
// cbuffer cb2 : register(b2)
// {
//   float4 cb2[12];
// }
//
// cbuffer cb1 : register(b1)
// {
//   float4 cb1[100];
// }
//
// cbuffer cb0 : register(b0)
// {
//   float4 cb0[373];
// }
//
//
//
//
// // 3Dmigoto declarations
// #define cmp -
// Texture1D<float4> IniParams : register(t120);
// Texture2D<float4> StereoParams : register(t125);
//
//
// void main)
// {
//   const float4 icb[] = { { 1.000000, 0, 0, 0},
//                               { 0, 1.000000, 0, 0},
//                               { 0, 0, 1.000000, 0},
//                               { 0, 0, 0, 1.000000} };
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_uav_typed_texture2darray (float,float,float,float) u0
//   float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18,r19,r20,r21,r22,r23,r24,r25,r26,r27,r28,r29,r30,r31,r32,r33,r34,r35;
//   uint4 bitmask, uiDest;
//   float4 fDest;
//
// // Needs manual fix for instruction:
// // unknown dcl_: dcl_thread_group 8, 8, 1
//   r0.x = (uint)vThreadGroupID.x >> 2;
//   r0.x = (int)r0.x + asint(cb3[0].x);
//   r0.x = t24[r0.x].val[0/4];
//   r1.x = (int)r0.x & 0x00007fff;
//   if (15 == 0) r1.y = 0; else if (15+15 < 32) {   r1.y = (uint)r0.x << (32-(15 + 15)); r1.y = (uint)r1.y >> (32-15);  } else r1.y = (uint)r0.x >> 15;
//   r2.x = (int)vThreadGroupID.x & 1;
//   if (1 == 0) r2.y = 0; else if (1+1 < 32) {   r2.y = (uint)vThreadGroupID.x << (32-(1 + 1)); r2.y = (uint)r2.y >> (32-1);  } else r2.y = (uint)vThreadGroupID.x >> 1;
//   r0.yz = (uint2)r2.xy << int2(3,3);
//   r0.yz = mad((int2)r1.xy, int2(16,16), (int2)r0.yz);
//   r2.xy = (int2)r0.yz + (int2)vThreadIDInGroup.xy;
//   r2.z = (uint)r0.x >> 30;
//   r2.w = 0;
//   r0.x = t0.Load(r2.xyzw).x;
//   r0.y = cmp(r0.x == 0.000000);
//   if (r0.y != 0) {
//     return;
//   }
//   r0.y = t23.Load(r2.xyzw).y;
//   r0.y = (int)r0.y & 2;
//   if (r0.y == 0) {
//     return;
//   }
//   r0.yz = (uint2)r2.xy;
//   r0.w = (uint)r2.z << 2;
//   r1.zw = float2(0.5,0.5) + r0.yz;
//   r3.xy = cb0[42].zw * r1.zw;
//   r3.zw = r3.xy * float2(2,2) + float2(-1,-1);
//   r4.xyzw = cb1[r0.w+41].xyzw * -r3.wwww;
//   r4.xyzw = cb1[r0.w+40].xyzw * r3.zzzz + r4.xyzw;
//   r4.xyzw = cb1[r0.w+42].xyzw * r0.xxxx + r4.xyzw;
//   r4.xyzw = cb1[r0.w+43].xyzw + r4.xyzw;
//   r4.xyz = r4.xyz / r4.www;
//   r0.x = cmp(cb0[47].w == 0.000000);
//   if (r0.x != 0) {
//     r5.xyz = -r4.xyz;
//   } else {
//     r5.x = cb1[r0.w+0].z;
//     r5.y = cb1[r0.w+1].z;
//     r5.z = cb1[r0.w+2].z;
//   }
//   r3.z = dot(r5.xyz, r5.xyz);
//   r3.z = rsqrt(r3.z);
//   r5.xyz = r5.xyz * r3.zzz;
//   r6.xyzw = t17.Load(r2.xyzw).xyzw;
//   r7.xyzw = t18.Load(r2.xyzw).xwyz;
//   r8.xyz = t19.Load(r2.xyzw).xyz;
//   r9.xyz = t20.Load(r2.xyzw).xyz;
//   r3.z = t1.Load(float4(0,0,0,0)).x;
//   r3.w = cb0[282].y * r3.z;
//   r4.w = cmp(r3.w == 0.000000);
//   r4.w = r4.w ? 1.000000 : 0;
//   r3.z = r3.z * cb0[282].y + r4.w;
//   r3.z = rcp(r3.z);
//   r9.xyz = r9.xyz * r3.zzz;
//   if (cb0[280].w != 0) {
//     r4.w = t21.Load(r2.xyzw).w;
//     r4.w = 255.5 * r4.w;
//     r4.w = (uint)r4.w;
//   } else {
//     r4.w = 255;
//   }
//   r10.xyz = float3(255.5,255.5,255.5) * r7.xzw;
//   r10.xyz = (uint3)r10.xyz;
//   r5.w = (uint)r10.z >> 4;
//   bitmask.x = ((~(-1 << 4)) << 8) & 0xffffffff;  r11.x = (((uint)r10.z << 8) & bitmask.x) | ((uint)0 & ~bitmask.x);
//   r11.y = (uint)r5.w << 8;
//   r7.zw = (int2)r10.xy | (int2)r11.xy;
//   r7.zw = (uint2)r7.zw;
//   r7.zw = r7.zw * float2(0.000488400517,0.000488400517) + float2(-1,-1);
//   r5.w = 1 + -abs(r7.z);
//   r10.z = r5.w + -abs(r7.w);
//   r5.w = max(0, -r10.z);
//   r11.xy = cmp(r7.zw >= float2(0,0));
//   r11.xy = r11.xy ? -r5.ww : r5.ww;
//   r10.xy = r11.xy + r7.zw;
//   r5.w = dot(r10.xyz, r10.xyz);
//   r5.w = rsqrt(r5.w);
//   r11.xyz = r10.xyz * r5.www;
//   r12.xyz = r8.xyz * float3(0.305306017,0.305306017,0.305306017) + float3(0.682171106,0.682171106,0.682171106);
//   r12.xyz = r8.xyz * r12.xyz + float3(0.0125228781,0.0125228781,0.0125228781);
//   r13.xyz = r12.xyz * r8.xyz;
//   r7.z = r7.y * r7.y;
//   r7.w = dot(r11.xyz, r5.xyz);
//   r8.w = max(9.99999975e-05, r7.w);
//   r7.x = sqrt(r8.w);
//   r14.xy = r7.xy * float2(0.984375,0.984375) + float2(0.0078125,0.0078125);
//   r14.xyz = t22.SampleLevel(s0_s, r14.xy, 0).xyz;
//   r7.x = r14.y + -r14.x;
//   r15.xyz = r13.xyz * r7.xxx + r14.xxx;
//   r7.x = 1 / r14.y;
//   r7.x = -1 + r7.x;
//   r9.w = r7.z * r7.z;
//   r10.w = -r8.w * r9.w + r8.w;
//   r10.w = r10.w * r8.w + r9.w;
//   r10.w = sqrt(r10.w);
//   r11.w = dot(-r5.xyz, r11.xyz);
//   r11.w = r11.w + r11.w;
//   r14.xyw = r11.xyz * -r11.www + -r5.xyz;
//   r4.xyz = cb1[r2.z+98].xyz + r4.xyz;
//   r11.w = t9.Load(r2.xyzw).x;
//   r12.w = (uint)r11.w >> 24;
//   r12.w = (uint)r12.w;
//   r13.w = 0.00392156886 * r12.w;
//   r11.w = (int)r11.w & 0x00ffffff;
//   r15.w = cmp(asint(cb0[280].z) >= 0);
//   if (r15.w != 0) {
//     r15.w = t4[cb0[280].z].val[16/4];
//     r16.x = t4[cb0[280].z].val[24/4];
//     r16.y = t4[cb0[280].z].val[24/4+1];
//     r16.z = t4[cb0[280].z].val[24/4+2];
//     r16.w = t4[cb0[280].z].val[116/4];
//     r15.w = cmp(0 < r15.w);
//     r16.w = cmp(0 < r16.w);
//     r15.w = r15.w ? r16.w : 0;
//     r16.x = dot(r11.xyz, -r16.xyz);
//     r16.y = cmp(0 < r16.x);
//     r15.w = r15.w ? r16.y : 0;
//     if (r15.w != 0) {
//       r17.x = t16[0].val[0/4];
//       r17.y = t16[0].val[0/4+1];
//       r17.z = t16[0].val[0/4+2];
//       r17.w = t16[0].val[0/4+3];
//       r18.x = t16[0].val[16/4];
//       r18.y = t16[0].val[16/4+1];
//       r18.z = t16[0].val[16/4+2];
//       r18.w = t16[0].val[16/4+3];
//       r19.x = t16[0].val[32/4];
//       r19.y = t16[0].val[32/4+1];
//       r19.z = t16[0].val[32/4+2];
//       r19.w = t16[0].val[32/4+3];
//       r20.x = t16[0].val[48/4];
//       r20.y = t16[0].val[48/4+1];
//       r20.z = t16[0].val[48/4+2];
//       r20.w = t16[0].val[48/4+3];
//       r16.yzw = float3(0,0,0);
//       r15.w = 0;
//       r21.x = 0;
//       while (true) {
//         r21.y = cmp((uint)r15.w >= asuint(cb0[280].y));
//         if (r21.y != 0) break;
//         r22.xyzw = icb[r15.w+0].xxxx * r17.xyzw;
//         r22.xyzw = icb[r15.w+0].yyyy * r18.xyzw + r22.xyzw;
//         r22.xyzw = icb[r15.w+0].zzzz * r19.xyzw + r22.xyzw;
//         r22.xyzw = icb[r15.w+0].wwww * r20.xyzw + r22.xyzw;
//         r21.yzw = -r22.xyz + r4.xyz;
//         r22.x = dot(r21.yzw, r21.yzw);
//         r22.y = r22.x / r22.w;
//         r22.z = cmp(0 < r22.y);
//         r22.w = cmp(1 >= r22.y);
//         r22.z = r22.w ? r22.z : 0;
//         if (r22.z != 0) {
//           r22.x = sqrt(r22.x);
//           r16.yzw = r21.yzw / r22.xxx;
//           r21.x = r22.y;
//           break;
//         }
//         r15.w = (int)r15.w + 1;
//         r16.yzw = r21.yzw;
//         r21.x = r22.y;
//       }
//       r17.x = cmp((uint)r15.w < asuint(cb0[280].y));
//       r15.w = r17.x ? r15.w : -1;
//       if (r0.x != 0) {
//         r17.xyz = -r4.xyz;
//       } else {
//         r17.x = cb1[r0.w+0].z;
//         r17.y = cb1[r0.w+1].z;
//         r17.z = cb1[r0.w+2].z;
//       }
//       r0.x = (int)r15.w;
//       r0.w = cmp(r0.x >= 0);
//       if (r0.w != 0) {
//         r18.x = t16[0].val[76/4];
//         r18.y = t16[0].val[76/4+1];
//         r18.z = t16[0].val[76/4+2];
//         r18.w = t16[0].val[76/4+3];
//         r19.w = t16[0].val[92/4];
//         r0.w = t4[cb0[280].z].val[68/4];
//         r16.x = cmp(r16.x >= 0);
//         r16.x = r16.x ? 1 : -1;
//         r20.xyz = r16.xxx * r11.xyz;
//         r16.x = (int)r18.x;
//         r19.xyz = r18.yzw;
//         r17.w = dot(r19.xyzw, icb[r15.w+0].xyzw);
//         r18.x = cmp(0 >= r17.w);
//         r18.y = 1 + -r17.w;
//         r18.y = r21.x + -r18.y;
//         r18.y = saturate(r18.y / r17.w);
//         r18.x = r18.x ? 0 : r18.y;
//         r16.y = dot(r17.xyz, r16.yzw);
//         r16.z = -1 + r17.w;
//         r16.z = saturate(-3.33333325 * r16.z);
//         r16.w = r16.z * -2 + 3;
//         r16.z = r16.z * r16.z;
//         r16.z = r16.w * r16.z;
//         r16.z = r16.z * 512 + 8;
//         r16.y = saturate(r16.y * r16.z);
//         r16.y = r16.y * -r18.x + r18.x;
//         r17.x = t15[r0.w].val[0/4];
//         r17.y = t15[r0.w].val[0/4+1];
//         r17.z = t15[r0.w].val[0/4+2];
//         r17.w = t15[r0.w].val[0/4+3];
//         r18.x = t15[r0.w].val[16/4];
//         r18.y = t15[r0.w].val[16/4+1];
//         r18.z = t15[r0.w].val[16/4+2];
//         r18.w = t15[r0.w].val[16/4+3];
//         r19.x = t15[r0.w].val[32/4];
//         r16.z = t15[r0.w].val[76/4];
//         r21.x = t15[r0.w].val[96/4];
//         r21.y = t15[r0.w].val[96/4+1];
//         r22.x = t15[r0.w].val[128/4];
//         r22.y = t15[r0.w].val[128/4+1];
//         r22.z = t15[r0.w].val[128/4+2];
//         r16.w = (int)r15.w + (int)r0.w;
//         r23.x = t15[r16.w].val[64/4];
//         r23.y = t15[r16.w].val[64/4+1];
//         r23.z = t15[r16.w].val[64/4+2];
//         r22.xyz = r22.xyz + r4.xyz;
//         r16.z = r23.z * r16.z;
//         r20.xyz = r20.xyz * r16.zzz;
//         r16.z = (int)r15.w + 1;
//         r16.x = (int)r16.x + -1;
//         r16.z = min((int)r16.z, (int)r16.x);
//         r16.z = (int)r16.z;
//         r0.x = cmp(r0.x != r16.z);
//         r20.w = cmp(0 < r16.y);
//         r0.x = r0.x ? r20.w : 0;
//         r20.w = trunc(cb0[61].z);
//         r21.zw = r20.ww * float2(2.08299994,4.8670001) + r0.yz;
//         r20.w = dot(r21.zw, float2(0.0671105608,0.00583714992));
//         r20.w = frac(r20.w);
//         r20.w = 52.9829178 * r20.w;
//         r20.w = frac(r20.w);
//         r20.w = cmp(r16.y >= r20.w);
//         r0.x = r0.x ? r20.w : 0;
//         if (r0.x != 0) {
//           r0.x = (int)r0.w;
//           r0.x = r0.x + r16.z;
//           r0.x = (int)r0.x;
//           r24.x = t15[r0.x].val[48/4+2];
//           r24.y = t15[r0.x].val[48/4+3];
//           r24.z = t15[r0.x].val[48/4];
//           r24.w = t15[r0.x].val[48/4+1];
//           r25.x = t15[r0.x].val[36/4+1];
//           r25.y = t15[r0.x].val[36/4];
//           r25.z = t15[r0.x].val[36/4+2];
//           r26.x = t15[r0.x].val[64/4];
//           r26.y = t15[r0.x].val[64/4+1];
//           r26.z = t15[r0.x].val[64/4+2];
//           r0.x = r26.z / r23.z;
//           r20.xyz = r20.xyz * r0.xxx;
//           r23.xy = r26.xy;
//           r26.x = r25.y;
//           r19.y = r25.z;
//         } else {
//           r24.x = t15[r16.w].val[48/4+2];
//           r24.y = t15[r16.w].val[48/4+3];
//           r24.z = t15[r16.w].val[48/4];
//           r24.w = t15[r16.w].val[48/4+1];
//           r25.x = t15[r16.w].val[36/4+1];
//           r25.y = t15[r16.w].val[36/4];
//           r25.z = t15[r16.w].val[36/4+2];
//           r26.x = r25.y;
//           r19.y = r25.z;
//         }
//         r20.xyz = r22.xyz + r20.xyz;
//         r26.yzw = r17.xyz;
//         r20.w = 1;
//         r0.x = dot(r26.yzwx, r20.xyzw);
//         r25.y = r17.w;
//         r25.zw = r18.xy;
//         r0.w = dot(r25.yzwx, r20.xyzw);
//         r19.zw = r18.zw;
//         r17.x = dot(r19.zwxy, r20.xyzw);
//         r18.xy = r24.zw * r0.xw;
//         r17.y = 1;
//         r0.x = dot(r24.xy, r17.xy);
//         r16.zw = saturate(r18.xy * float2(0.5,0.5) + float2(0.5,0.5));
//         r16.zw = r16.zw * r21.xy;
//         r16.zw = r16.zw * cb0[83].zw + r23.xy;
//         r0.x = 1.52587891e-05 + r0.x;
//         r17.xy = r16.zw * cb0[83].xy + float2(0.5,0.5);
//         r17.xy = floor(r17.xy);
//         r16.zw = r16.zw * cb0[83].xy + -r17.xy;
//         r18.xyzw = float4(0.5,1,0.5,1) + r16.zzww;
//         r19.xyzw = r18.xxzz * r18.xxzz;
//         r20.yw = float2(0.0408160016,0.0408160016) * r19.yw;
//         r17.zw = r19.xz * float2(0.5,0.5) + -r16.zw;
//         r18.xz = float2(1,1) + -r16.zw;
//         r19.xy = min(float2(0,0), r16.zw);
//         r18.xz = -r19.xy * r19.xy + r18.xz;
//         r19.xy = max(float2(0,0), r16.zw);
//         r18.yw = -r19.xy * r19.xy + r18.yw;
//         r18.xyzw = float4(2,2,2,2) + r18.xyzw;
//         r19.z = 0.0816320032 * r18.y;
//         r21.xy = float2(0.0816320032,0.0816320032) * r17.wz;
//         r17.zw = float2(0.0816320032,0.0816320032) * r18.xz;
//         r21.z = 0.0816320032 * r18.w;
//         r19.x = r21.y;
//         r19.yw = r16.zz * float2(-0.0816320032,0.0816320032) + float2(0.163264006,0.0816320032);
//         r18.xz = r16.zz * float2(-0.0816320032,0.0816320032) + float2(0.0816320032,0.163264006);
//         r18.y = r17.z;
//         r18.w = r20.y;
//         r19.xyzw = r19.xyzw + r18.xyzw;
//         r21.yw = r16.ww * float2(-0.0816320032,0.0816320032) + float2(0.163264006,0.0816320032);
//         r20.xz = r16.ww * float2(-0.0816320032,0.0816320032) + float2(0.0816320032,0.163264006);
//         r20.y = r17.w;
//         r21.xyzw = r21.xyzw + r20.xyzw;
//         r18.xyzw = r18.xyzw / r19.xyzw;
//         r18.xyzw = float4(-3.5,-1.5,0.5,2.5) + r18.xyzw;
//         r20.xyzw = r20.xyzw / r21.xyzw;
//         r20.xyzw = float4(-3.5,-1.5,0.5,2.5) + r20.xyzw;
//         r18.xyzw = cb0[83].zzzz * r18.wxyz;
//         r20.xyzw = cb0[83].wwww * r20.xwyz;
//         r22.xzw = r18.yzw;
//         r22.y = r20.x;
//         r23.xyzw = r17.xyxy * cb0[83].zwzw + r22.xyzy;
//         r16.zw = r17.xy * cb0[83].zw + r22.wy;
//         r18.y = r22.y;
//         r22.y = r20.z;
//         r24.xyzw = r17.xyxy * cb0[83].zwzw + r22.xyzy;
//         r17.zw = r17.xy * cb0[83].zw + r22.wy;
//         r18.z = r22.y;
//         r25.xyzw = r17.xyxy * cb0[83].zwzw + r18.xyxz;
//         r22.y = r20.w;
//         r26.xyzw = r17.xyxy * cb0[83].zwzw + r22.xyzy;
//         r18.yz = r17.xy * cb0[83].zw + r22.wy;
//         r18.w = r22.y;
//         r27.xy = r17.xy * cb0[83].zw + r18.xw;
//         r20.xzw = r22.xzw;
//         r22.xyzw = r17.xyxy * cb0[83].zwzw + r20.xyzy;
//         r20.zw = r17.xy * cb0[83].zw + r20.wy;
//         r20.x = r18.x;
//         r17.xy = r17.xy * cb0[83].zw + r20.xy;
//         r28.xyzw = r21.xxxx * r19.xyzw;
//         r29.xyzw = r21.yyyy * r19.xyzw;
//         r30.xyzw = r21.zzzz * r19.xyzw;
//         r19.xyzw = r21.wwww * r19.xyzw;
//         r0.w = t14.SampleCmpLevelZero(s2_s, r23.xy, r0.x).x;
//         r18.x = t14.SampleCmpLevelZero(s2_s, r23.zw, r0.x).x;
//         r16.z = t14.SampleCmpLevelZero(s2_s, r16.zw, r0.x).x;
//         r16.w = t14.SampleCmpLevelZero(s2_s, r25.xy, r0.x).x;
//         r18.w = 0;
//         r20.x = 0;
//         while (true) {
//           r20.y = cmp((int)r20.x >= 1);
//           if (r20.y != 0) break;
//           r20.y = r28.x * r0.w + r18.w;
//           r20.y = r28.y * r18.x + r20.y;
//           r20.y = r28.z * r16.z + r20.y;
//           r18.w = r28.w * r16.w + r20.y;
//           r20.x = (int)r20.x + 1;
//         }
//         r0.w = t14.SampleCmpLevelZero(s2_s, r24.xy, r0.x).x;
//         r16.z = t14.SampleCmpLevelZero(s2_s, r24.zw, r0.x).x;
//         r16.w = t14.SampleCmpLevelZero(s2_s, r17.zw, r0.x).x;
//         r17.z = t14.SampleCmpLevelZero(s2_s, r25.zw, r0.x).x;
//         r17.w = r18.w;
//         r18.x = 0;
//         while (true) {
//           r20.x = cmp((int)r18.x >= 1);
//           if (r20.x != 0) break;
//           r20.x = r29.x * r0.w + r17.w;
//           r20.x = r29.y * r16.z + r20.x;
//           r20.x = r29.z * r16.w + r20.x;
//           r17.w = r29.w * r17.z + r20.x;
//           r18.x = (int)r18.x + 1;
//         }
//         r0.w = t14.SampleCmpLevelZero(s2_s, r26.xy, r0.x).x;
//         r16.z = t14.SampleCmpLevelZero(s2_s, r26.zw, r0.x).x;
//         r16.w = t14.SampleCmpLevelZero(s2_s, r18.yz, r0.x).x;
//         r17.z = t14.SampleCmpLevelZero(s2_s, r27.xy, r0.x).x;
//         r18.x = r17.w;
//         r18.y = 0;
//         while (true) {
//           r18.z = cmp((int)r18.y >= 1);
//           if (r18.z != 0) break;
//           r18.z = r30.x * r0.w + r18.x;
//           r18.z = r30.y * r16.z + r18.z;
//           r18.z = r30.z * r16.w + r18.z;
//           r18.x = r30.w * r17.z + r18.z;
//           r18.y = (int)r18.y + 1;
//         }
//         r0.w = t14.SampleCmpLevelZero(s2_s, r22.xy, r0.x).x;
//         r16.z = t14.SampleCmpLevelZero(s2_s, r22.zw, r0.x).x;
//         r16.w = t14.SampleCmpLevelZero(s2_s, r20.zw, r0.x).x;
//         r0.x = t14.SampleCmpLevelZero(s2_s, r17.xy, r0.x).x;
//         r17.x = r18.x;
//         r17.y = 0;
//         while (true) {
//           r17.z = cmp((int)r17.y >= 1);
//           if (r17.z != 0) break;
//           r17.z = r19.x * r0.w + r17.x;
//           r17.z = r19.y * r16.z + r17.z;
//           r17.z = r19.z * r16.w + r17.z;
//           r17.x = r19.w * r0.x + r17.z;
//           r17.y = (int)r17.y + 1;
//         }
//         r0.x = cmp((int)r15.w < (int)r16.x);
//         r0.w = 1 + -r17.x;
//         r0.w = r16.y * r0.w + r17.x;
//         r0.x = r0.x ? r17.x : r0.w;
//       } else {
//         r0.x = 1;
//       }
//       r16.xyz = r0.xxx;
//     } else {
//       r16.xyz = float3(1,1,1);
//     }
//   } else {
//     r16.xyz = float3(1,1,1);
//   }
//   r0.x = asuint(cb0[289].y) << 1;
//   r0.x = (int)r0.x + (int)r1.y;
//   r0.x = mad((int)r0.x, asint(cb0[289].x), (int)r1.x);
//   r0.w = (int)r2.z * asint(cb0[289].x);
//   r0.w = (int)r0.w * asint(cb0[289].y);
//   r0.x = mad((int)r0.w, 6, (int)r0.x);
//   r0.x = (uint)r0.x << 4;
//   r0.w = t3[r0.x].val[0/4];
//   r0.w = (int)r0.w & 0x0000ffff;
//   r17.xyzw = t13.Load(r2.xyzw).xyzw;
//   r1.x = t2.Load(float4(0,0,0,0)).x;
//   r1.y = cb0[282].y * r1.x;
//   r1.y = cmp(r1.y == 0.000000);
//   r1.y = r1.y ? 1.000000 : 0;
//   r1.x = r1.x * cb0[282].y + r1.y;
//   r1.x = rcp(r1.x);
//   r1.x = cb0[360].y ? 1 : r1.x;
//   r17.xyz = r17.xyz * r1.xxx;
//   r17.xyz = r17.xyz * r17.www;
//   r17.xyz = r17.xyz * r15.xyz;
//   r1.x = -r7.y * r7.y + 1;
//   r1.y = sqrt(r1.x);
//   r1.y = r7.y * r7.y + r1.y;
//   r15.w = r8.w * r8.w;
//   r15.w = r15.w * r1.x;
//   r1.x = saturate(r1.x * r1.x + r15.w);
//   r1.x = r1.y * r1.x;
//   r10.xyz = -r10.xyz * r5.www + r14.xyw;
//   r10.xyz = r1.xxx * r10.xyz + r11.xyz;
//   r1.x = min(1, r9.w);
//   r1.y = r1.x * -2 + 3;
//   r1.x = r1.x * r1.x;
//   r1.x = r1.y * r1.x;
//   r1.x = min(1, r1.x);
//   r18.xyz = r14.xyw + -r10.xyz;
//   r18.xyz = r1.xxx * r18.xyz + r10.xyz;
//   r10.xyz = r17.xyz;
//   r1.x = r17.w;
//   r1.y = 0;
//   while (true) {
//     r5.w = cmp((uint)r1.y >= (uint)r0.w);
//     if (r5.w != 0) break;
//     r1.y = (int)r1.y + 1;
//     r5.w = cmp(r1.x < 1);
//     if (r5.w != 0) {
//       r5.w = (uint)r1.y >> 1;
//       r5.w = (int)r0.x + (int)r5.w;
//       r5.w = t3[r5.w].val[0/4];
//       bitmask.w = ((~(-1 << 1)) << 4) & 0xffffffff;  r9.w = (((uint)r1.y << 4) & bitmask.w) | ((uint)0 & ~bitmask.w);
//       r5.w = (uint)r5.w >> (uint)r9.w;
//       r5.w = (int)r5.w & 0x0000ffff;
//       r19.x = t5[r5.w].val[0/4];
//       r19.y = t5[r5.w].val[0/4+1];
//       r19.z = t5[r5.w].val[0/4+2];
//       r19.w = t5[r5.w].val[0/4+3];
//       r9.w = (int)r4.w & (int)r19.x;
//       if (r9.w != 0) {
//         r20.x = t5[r5.w].val[16/4];
//         r20.y = t5[r5.w].val[16/4+1];
//         r20.z = t5[r5.w].val[16/4+2];
//         r20.w = t5[r5.w].val[16/4+3];
//         r21.x = t5[r5.w].val[32/4];
//         r21.y = t5[r5.w].val[32/4+1];
//         r21.z = t5[r5.w].val[32/4+2];
//         r21.w = t5[r5.w].val[32/4+3];
//         r22.x = t5[r5.w].val[48/4];
//         r22.y = t5[r5.w].val[48/4+1];
//         r22.z = t5[r5.w].val[48/4+2];
//         r22.w = t5[r5.w].val[48/4+3];
//         r23.x = t5[r5.w].val[64/4+2];
//         r23.y = t5[r5.w].val[64/4];
//         r23.z = t5[r5.w].val[64/4+1];
//         r23.w = t5[r5.w].val[64/4+3];
//         r24.x = t5[r5.w].val[80/4+1];
//         r24.y = t5[r5.w].val[80/4+2];
//         r24.z = t5[r5.w].val[80/4];
//         r24.w = t5[r5.w].val[80/4+3];
//         r25.x = t5[r5.w].val[96/4];
//         r25.y = t5[r5.w].val[96/4+1];
//         r25.z = t5[r5.w].val[96/4+2];
//         r25.w = t5[r5.w].val[96/4+3];
//         r26.x = t5[r5.w].val[112/4+2];
//         r26.y = t5[r5.w].val[112/4];
//         r26.z = t5[r5.w].val[112/4+1];
//         r26.w = t5[r5.w].val[112/4+3];
//         r27.x = t5[r5.w].val[128/4];
//         r27.y = t5[r5.w].val[128/4+1];
//         r27.z = t5[r5.w].val[128/4+2];
//         r27.w = t5[r5.w].val[128/4+3];
//         r28.x = t5[r5.w].val[144/4];
//         r28.y = t5[r5.w].val[144/4+1];
//         r28.z = t5[r5.w].val[144/4+2];
//         r28.w = t5[r5.w].val[144/4+3];
//         r29.x = t5[r5.w].val[160/4+2];
//         r29.y = t5[r5.w].val[160/4+3];
//         r29.z = t5[r5.w].val[160/4];
//         r29.w = t5[r5.w].val[160/4+1];
//         r30.x = t5[r5.w].val[208/4];
//         r30.y = t5[r5.w].val[208/4+1];
//         r30.z = t5[r5.w].val[208/4+2];
//         r30.w = t5[r5.w].val[208/4+3];
//         r31.x = t5[r5.w].val[224/4];
//         r31.y = t5[r5.w].val[224/4+1];
//         r31.z = t5[r5.w].val[224/4+2];
//         r31.w = t5[r5.w].val[224/4+3];
//         r9.w = cmp((int)r31.w >= 0);
//         r32.xyz = r9.www ? r18.xyz : r14.xyw;
//         r33.xyz = -r24.xyw + r4.xyz;
//         r34.xy = r26.xw;
//         r34.z = r27.x;
//         r35.x = dot(r33.xyz, r34.xyz);
//         r26.x = r25.w;
//         r35.y = dot(r33.xyz, r26.xyz);
//         r35.z = dot(r33.xyz, r25.xyz);
//         r21.yzw = -r21.yzw + r4.xyz;
//         r24.xy = r23.xw;
//         r33.x = dot(r21.yzw, r24.xyz);
//         r23.x = r22.w;
//         r33.y = dot(r21.yzw, r23.xyz);
//         r33.z = dot(r21.yzw, r22.xyz);
//         r24.x = dot(r32.xyz, r24.xyz);
//         r24.y = dot(r32.xyz, r23.xyz);
//         r24.z = dot(r32.xyz, r22.xyz);
//         r15.w = cmp((int)r20.x == 2);
//         if (r15.w != 0) {
//           r15.w = dot(r24.xyz, r33.xyz);
//           r16.w = r15.w + r15.w;
//           r19.x = dot(r33.xyz, r33.xyz);
//           r19.x = -r20.y * r20.y + r19.x;
//           r19.x = 4 * r19.x;
//           r16.w = r16.w * r16.w + -r19.x;
//           r16.w = sqrt(r16.w);
//           r15.w = -r15.w * 2 + r16.w;
//           r15.w = 0.5 * abs(r15.w);
//           r16.w = (int)r15.w & 0x7fffffff;
//           r16.w = cmp(0x7f800000 < (uint)r16.w);
//           r15.w = r16.w ? -1 : r15.w;
//           r15.w = max(r15.w, r21.x);
//           r21.yzw = r15.www * r32.xyz + r4.xyz;
//           r32.xyz = r21.yzw + -r19.yzw;
//           r16.w = dot(r35.xyz, r35.xyz);
//           r16.w = sqrt(r16.w);
//           r19.x = -r28.x + r27.y;
//           r19.x = -r19.x + r16.w;
//           r19.x = max(0, r19.x);
//           r21.y = max(9.99999975e-05, r28.x);
//           r19.x = r19.x / r21.y;
//           r19.x = 1 + -r19.x;
//           r19.x = max(0, r19.x);
//           r21.y = -r29.x + r27.y;
//           r16.w = cmp(r21.y >= r16.w);
//           r21.yzw = -r19.yzw + r4.xyz;
//           r22.x = dot(r21.yzw, r21.yzw);
//           r22.x = rsqrt(r22.x);
//           r21.yzw = r22.xxx * r21.yzw;
//           r21.y = dot(r11.xyz, r21.yzw);
//           r21.y = saturate(r21.y * -2.5 + 1.5);
//           r16.w = r16.w ? 1 : r21.y;
//           r16.w = r19.x * r16.w;
//         } else {
//           r19.x = cmp((int)r20.x == 1);
//           if (r19.x != 0) {
//             r22.x = t5[r5.w].val[176/4];
//             r22.y = t5[r5.w].val[176/4+1];
//             r22.z = t5[r5.w].val[176/4+2];
//             r22.w = t5[r5.w].val[176/4+3];
//             r23.x = t5[r5.w].val[192/4+3];
//             r23.y = t5[r5.w].val[192/4];
//             r23.z = t5[r5.w].val[192/4+1];
//             r23.w = t5[r5.w].val[192/4+2];
//             r34.x = dot(r32.xyz, r34.xyz);
//             r34.y = dot(r32.xyz, r26.xyz);
//             r34.z = dot(r32.xyz, r25.xyz);
//             r5.w = dot(r34.xyz, r34.xyz);
//             r5.w = rsqrt(r5.w);
//             r21.yzw = r34.xyz * r5.www;
//             r25.xyz = rcp(r24.xyz);
//             r26.xyz = -r33.xyz + -r20.yzw;
//             r26.xyz = r26.xyz * r25.xyz;
//             r20.xyz = -r33.xyz + r20.yzw;
//             r20.xyz = r20.xyz * r25.xyz;
//             r24.xyz = cmp(float3(0,0,0) < r24.xyz);
//             r20.xyz = r24.xyz ? r20.xyz : r26.xyz;
//             r5.w = min(r20.x, r20.y);
//             r5.w = min(r5.w, r20.z);
//             r15.w = max(r5.w, r21.x);
//             r20.xyz = r15.www * r32.xyz + r4.xyz;
//             r32.xyz = r20.xyz + -r19.yzw;
//             r20.xyz = r35.xyz + r27.yzw;
//             r24.xyz = -r35.xyz + r27.yzw;
//             r25.x = r28.w;
//             r25.yz = r29.zw;
//             r25.xyz = max(float3(9.99999975e-05,9.99999975e-05,9.99999975e-05), r25.xyz);
//             r25.xyz = r20.xyz / r25.xyz;
//             r26.xyz = max(float3(9.99999975e-05,9.99999975e-05,9.99999975e-05), r28.xyz);
//             r26.xyz = r24.xyz / r26.xyz;
//             r5.w = min(r25.x, r25.y);
//             r5.w = min(r5.w, r25.z);
//             r19.x = min(r26.x, r26.y);
//             r19.x = min(r19.x, r26.z);
//             r5.w = saturate(min(r19.x, r5.w));
//             r29.z = r22.x;
//             r25.xyz = max(float3(9.99999975e-05,9.99999975e-05,9.99999975e-05), r29.xyz);
//             r24.xyz = r24.xyz / r25.xyz;
//             r22.xyz = max(float3(9.99999975e-05,9.99999975e-05,9.99999975e-05), r22.yzw);
//             r20.xyz = r20.xyz / r22.xyz;
//             r22.xyz = cmp(r24.xyz >= float3(1,1,1));
//             r19.x = r22.y ? r22.x : 0;
//             r19.x = r22.z ? r19.x : 0;
//             r20.xyz = cmp(r20.xyz >= float3(1,1,1));
//             r20.x = r20.y ? r20.x : 0;
//             r20.x = r20.z ? r20.x : 0;
//             r19.x = r20.x ? r19.x : 0;
//             r19.yzw = -r19.yzw + r4.xyz;
//             r20.x = dot(r19.yzw, r19.yzw);
//             r20.x = rsqrt(r20.x);
//             r19.yzw = r20.xxx * r19.yzw;
//             r19.y = dot(r11.xyz, r19.yzw);
//             r19.y = saturate(r19.y * -2.5 + 1.5);
//             r19.x = r19.x ? 1 : r19.y;
//             r5.w = r19.x * r5.w;
//             r19.xyz = r21.yzw * float3(4,4,4) + float3(-1,-1,-1);
//             r19.xyz = saturate(r19.xyz * r23.yzw);
//             r20.xyz = r21.yzw * float3(-4,-4,-4) + float3(-1,-1,-1);
//             r23.yz = r30.xy;
//             r20.xyz = saturate(r23.xyz * r20.xyz);
//             r19.xyz = r20.xyz + r19.xyz;
//             r19.x = r19.x + r19.y;
//             r19.x = r19.x + r19.z;
//             r19.x = min(1, r19.x);
//             r16.w = r19.x * r5.w;
//           } else {
//             r16.w = 1;
//             r15.w = 0;
//           }
//         }
//         r5.w = r16.w * r16.w;
//         r16.w = -r16.w * 2 + 3;
//         r5.w = r16.w * r5.w;
//         r5.w = r5.w * r30.z;
//         r16.w = dot(r32.xyz, r32.xyz);
//         r16.w = sqrt(r16.w);
//         r15.w = r15.w / r16.w;
//         r15.w = r15.w * r7.y;
//         r15.w = max(0, r15.w);
//         r15.w = min(r15.w, r7.y);
//         r16.w = -r15.w + r7.y;
//         r15.w = r7.y * r16.w + r15.w;
//         r15.w = r15.w + -r7.y;
//         r15.w = r31.z * r15.w + r7.y;
//         r15.w = r9.w ? r15.w : r7.y;
//         r16.w = -r15.w * 0.699999988 + 1.70000005;
//         r15.w = r16.w * r15.w;
//         r15.w = r15.w * r31.y;
//         r15.w = 6 * r15.w;
//         r16.w = max((int)r31.w, (int)-r31.w);
//         r16.w = (int)r16.w + -1;
//         if (r9.w == 0) {
//           r9.w = (uint)r16.w << 2;
//           r19.xyzw = cb0[r9.w+88].xyzw * r32.yyyy;
//           r19.xyzw = cb0[r9.w+87].xyzw * r32.xxxx + r19.xyzw;
//           r19.xyzw = cb0[r9.w+89].xyzw * r32.zzzz + r19.xyzw;
//           r19.xyzw = cb0[r9.w+90].xyzw + r19.xyzw;
//           r9.w = rcp(r19.w);
//           r19.xyz = float3(1,-1,1) * r19.xyz;
//           r19.xyz = r19.xyz * r9.www;
//           r20.xy = r19.xy * float2(0.5,0.5) + float2(0.5,0.5);
//           r20.zw = cb0[r16.w+247].xy + cb0[288].yy;
//           r20.zw = rcp(r20.zw);
//           r21.xy = cb0[r16.w+247].xy * r20.zw;
//           r20.zw = -r20.zw * cb0[r16.w+247].xy + float2(1,1);
//           r20.zw = float2(0.5,0.5) * r20.zw;
//           r9.w = exp2(r15.w);
//           r21.zw = cb0[r16.w+247].xy * cb0[288].xx;
//           r21.zw = r21.zw + r21.zw;
//           r21.zw = r9.ww / r21.zw;
//           r20.zw = r20.xy * r21.xy + r20.zw;
//           r21.xy = float2(1,1) + -r21.zw;
//           r20.zw = max(r20.zw, r21.zw);
//           r20.zw = min(r20.zw, r21.xy);
//           r20.zw = r20.zw * cb0[r16.w+247].xy + cb0[r16.w+247].zw;
//           r21.xyz = t8.SampleLevel(s1_s, r20.zw, r15.w).xyz;
//           r22.xyzw = cmp(r20.xyxy < float4(0,0,0.5,0.5));
//           r9.w = (int)r22.y | (int)r22.x;
//           r19.xyz = r19.xyz * float3(0.5,0.5,1) + float3(0.5,0.5,0);
//           r19.xyz = cmp(float3(1,1,1) < r19.xyz);
//           r19.x = (int)r19.y | (int)r19.x;
//           r19.x = (int)r19.z | (int)r19.x;
//           r9.w = (int)r9.w | (int)r19.x;
//           r19.x = dot(cb0[r16.w+215].xyz, r32.xyz);
//           r19.x = cmp(r19.x < 0);
//           r19.yz = saturate(r20.xy);
//           r19.yz = r19.yz * float2(2,2) + float2(-1,-1);
//           r20.zw = cmp(r3.xy < r20.xy);
//           r20.zw = r20.zw ? float2(0,0) : 0;
//           r22.xy = r22.zw ? float2(0,0) : 0;
//           r20.zw = (int2)r20.zw ^ (int2)r22.xy;
//           r20.xy = -r1.zw * cb0[42].zw + r20.xy;
//           r20.xy = float2(100,100) * abs(r20.xy);
//           r20.xy = min(float2(1,1), r20.xy);
//           r22.xy = r20.xy * r20.xy;
//           r20.xy = -r20.xy * float2(2,2) + float2(3,3);
//           r20.xy = r22.xy * r20.xy;
//           r19.yz = -abs(r19.yz) * float2(2,2) + float2(2,2);
//           r19.yz = min(float2(1,1), r19.yz);
//           r19.yz = float2(-1,-1) + r19.yz;
//           r19.yz = r20.xy * r19.yz + float2(1,1);
//           r19.yz = r20.zw ? r19.yz : float2(1,1);
//           r19.y = r19.y * r19.z;
//           r9.w = (int)r9.w | (int)r19.x;
//           r9.w = r9.w ? 0 : r19.y;
//         } else {
//           r16.w = (int)r16.w * asint(cb0[291].z);
//           r32.w = (int)r16.w;
//           r21.xyz = t7.SampleLevel(s1_s, r32.xyzw, r15.w).xyz;
//           r9.w = 1;
//         }
//         r19.xyz = r21.xyz * r31.xxx;
//         r19.xyz = min(float3(65504,65504,65504), r19.xyz);
//         r19.xyz = r19.xyz * r15.xyz;
//         r15.w = r5.w * r9.w + r1.x;
//         r1.x = saturate(r15.w);
//         r15.w = saturate(r15.w + -r1.x);
//         r5.w = r5.w * r9.w + -r15.w;
//         r5.w = r5.w * r30.w;
//         r10.xyz = r19.xyz * r5.www + r10.xyz;
//       }
//     }
//   }
//   if (cb0[280].x != 0) {
//     r0.x = cmp(r1.x < 1);
//     if (r0.x != 0) {
//       r0.x = -r7.y * 0.699999988 + 1.70000005;
//       r0.x = r7.y * r0.x;
//       r0.x = 6 * r0.x;
//       r18.w = 0;
//       r1.yzw = t11.SampleLevel(s1_s, r18.xyzw, r0.x).xyz;
//       r1.yzw = min(float3(65504,65504,65504), r1.yzw);
//       r1.yzw = r15.xyz * r1.yzw;
//       r0.x = 1 + r1.x;
//       r0.w = saturate(r0.x);
//       r0.x = saturate(r0.x + -r0.w);
//       r0.x = 1 + -r0.x;
//       r0.x = cb0[281].x ? r0.x : 0;
//       r10.xyz = r1.yzw * r0.xxx + r10.xyz;
//     }
//   }
//   r1.xyz = float3(-1,-1,-1) + r16.xyz;
//   r14.xyw = cb1[r2.z+96].xyz + r4.xyz;
//   r14.xyw = -cb2[7].xyz + r14.xyw;
//   r0.x = dot(r14.xyw, r14.xyw);
//   r0.x = sqrt(r0.x);
//   r0.w = rcp(r0.x);
//   r1.w = cb2[0].x * r0.w;
//   r1.w = -r1.w * r1.w + 1;
//   r1.w = max(0, r1.w);
//   r1.w = sqrt(r1.w);
//   r3.xy = cb2[2].xz * r0.xx;
//   r15.xy = cb2[2].xz * cb2[0].xx + -r3.xy;
//   r15.xy = float2(1.44269502,1.44269502) * r15.xy;
//   r15.zw = r3.xy * float2(2,2) + float2(1,1);
//   r15.xy = exp2(r15.xy);
//   r0.x = max(0, -cb0[287].z);
//   r0.x = ceil(r0.x);
//   r0.x = exp2(r0.x);
//   r5.w = -r12.w * 0.00392156886 + 1;
//   r9.w = dot(r6.ww, r6.ww);
//   r12.w = 1 + -r8.w;
//   r16.x = r12.w * r12.w;
//   r16.x = r16.x * r16.x;
//   r12.w = r16.x * r12.w;
//   r17.xyz = float3(0,0,0);
//   r16.xyzw = float4(0,0,0,0);
//   while (true) {
//     r17.w = cmp((uint)r16.w >= asuint(cb0[279].x));
//     if (r17.w != 0) break;
//     r17.w = t4[r16.w].val[12/4];
//     r17.w = r17.w ? r4.w : 0;
//     if (r17.w != 0) {
//       r17.w = t4[r16.w].val[16/4];
//       r18.x = t4[r16.w].val[24/4];
//       r18.y = t4[r16.w].val[24/4+1];
//       r18.z = t4[r16.w].val[24/4+2];
//       r18.w = t4[r16.w].val[24/4+3];
//       r17.w = cmp(0 < r17.w);
//       r19.x = dot(r11.xyz, -r18.xyz);
//       r19.y = cmp(0 < r19.x);
//       r17.w = r17.w ? r19.y : 0;
//       if (r17.w != 0) {
//         r20.x = t4[r16.w].val[56/4];
//         r20.y = t4[r16.w].val[56/4+1];
//         r20.z = t4[r16.w].val[56/4+2];
//         r20.w = t4[r16.w].val[56/4+3];
//         r21.x = t4[r16.w].val[88/4];
//         r21.y = t4[r16.w].val[88/4+1];
//         r21.z = t4[r16.w].val[88/4+2];
//         r21.w = t4[r16.w].val[88/4+3];
//         r22.x = t4[r16.w].val[104/4];
//         r22.y = t4[r16.w].val[104/4+1];
//         r22.z = t4[r16.w].val[104/4+2];
//         r22.w = t4[r16.w].val[104/4+3];
//         r23.x = t4[r16.w].val[152/4];
//         r23.y = t4[r16.w].val[152/4+1];
//         r23.z = t4[r16.w].val[152/4+2];
//         r23.w = t4[r16.w].val[152/4+3];
//         r17.w = t4[r16.w].val[168/4];
//         r19.y = max(5.96046448e-08, abs(r18.y));
//         r19.y = rcp(r19.y);
//         r19.z = cmp(-r18.y >= 0);
//         r19.z = r19.z ? r4.y : -16777216;
//         r19.w = -cb0[74].y + r19.z;
//         r19.z = cb0[74].y + -r19.z;
//         r19.z = r19.z * r19.y;
//         r19.zw = max(float2(0,0), r19.zw);
//         r19.w = cb0[75].x * -r19.w;
//         r19.w = 1.44269502 * r19.w;
//         r19.w = exp2(r19.w);
//         r19.y = cb0[75].y * r19.y;
//         r19.y = r19.w * r19.y + r19.z;
//         r19.y = cb0[74].x * r19.y;
//         r19.y = -1.44269502 * r19.y;
//         r19.y = exp2(r19.y);
//         r19.yzw = r21.xyz * r19.yyy;
//         r17.w = cmp((int)r17.w >= 0);
//         if (r17.w != 0) {
//           r17.w = dot(r14.xyw, -r18.xyz);
//           r17.w = r17.w * r0.w;
//           r21.x = cmp(r17.w >= -r1.w);
//           if (r21.x != 0) {
//             r21.x = -r17.w * r17.w + 1;
//             r21.x = max(0, r21.x);
//             r21.x = sqrt(r21.x);
//             r21.y = abs(r17.w) * abs(r17.w);
//             r24.xy = r21.yy * r3.xy;
//             r21.yz = -r21.yy * r3.xy + r15.zw;
//             r21.yz = float2(0.761642992,0.761642992) * r21.yz;
//             r24.xy = r24.xy * float2(0.273828,0.273828) + float2(1.47721004,1.47721004);
//             r24.xy = r24.xy * r3.xy;
//             r24.xy = sqrt(r24.xy);
//             r24.xy = abs(r17.ww) * r3.xy + r24.xy;
//             r24.xy = rcp(r24.xy);
//             r21.yz = r24.xy * r21.yz;
//             r21.yz = abs(r17.ww) * float2(0.5,0.5) + r21.yz;
//             r21.yz = r21.yz * r15.xy;
//             r17.w = cmp(r17.w < 0);
//             r24.xy = r21.xx * r3.xy;
//             r24.zw = cb2[2].xz * cb2[0].xx + -r24.xy;
//             r24.zw = float2(1.44269502,1.44269502) * r24.zw;
//             r24.zw = exp2(r24.zw);
//             r25.xy = rsqrt(r24.xy);
//             r21.x = dot(r24.xx, r25.xx);
//             r21.x = r25.x + r21.x;
//             r26.x = r24.z * r21.x;
//             r21.x = dot(r24.yy, r25.yy);
//             r21.x = r25.y + r21.x;
//             r26.y = r24.w * r21.x;
//             r24.xy = r26.xy * float2(1.25331402,1.25331402) + -r21.yz;
//             r21.xy = r17.ww ? r24.xy : r21.yz;
//             r21.xy = cb2[2].yw * r21.xy;
//             r17.w = cb2[10].x * r21.y;
//             r21.xyz = r21.xxx * cb2[3].xyz + r17.www;
//             r21.xyz = float3(-1.44269502,-1.44269502,-1.44269502) * r21.xyz;
//             r21.xyz = exp2(r21.xyz);
//             r21.xyz = float3(1,1,1) + -r21.xyz;
//             r17.w = r21.x + r21.y;
//             r17.w = r17.w + r21.z;
//             r24.x = 0.333333343 * r17.w;
//             r21.xyz = -r17.www * float3(0.333333343,0.333333343,0.333333343) + r21.xyz;
//             r21.xyz = r21.xyz * cb2[10].www + r24.xxx;
//             r21.xyz = -r21.xyz * cb2[11].xxx + float3(1,1,1);
//             r19.yzw = r21.xyz * r19.yzw;
//             r17.w = 1;
//           } else {
//             r19.yzw = float3(0,0,0);
//             r17.w = 0;
//           }
//         } else {
//           r17.w = 1;
//         }
//         if (r18.w != 0) {
//           r21.x = t4[r16.w].val[0/4];
//           r21.y = t4[r16.w].val[0/4+1];
//           r21.z = t4[r16.w].val[0/4+2];
//           r24.x = t4[r16.w].val[40/4];
//           r24.y = t4[r16.w].val[40/4+1];
//           r24.z = t4[r16.w].val[40/4+2];
//           r24.w = t4[r16.w].val[40/4+3];
//           r25.x = t4[r16.w].val[72/4];
//           r25.y = t4[r16.w].val[72/4+1];
//           r25.z = t4[r16.w].val[72/4+2];
//           r21.xyz = -r21.xyz + r4.xyz;
//           r20.x = dot(r21.xyz, r20.xyz);
//           r20.y = dot(r21.xyz, r25.xyz);
//           r20.xy = r20.xy * float2(0.5,0.5) + float2(0.5,0.5);
//           r18.w = cmp((int)r18.w == 2);
//           r21.xy = frac(r20.xy);
//           r20.xy = r18.ww ? r21.xy : r20.xy;
//           r21.xy = cb0[287].yy + r24.xy;
//           r21.xy = rcp(r21.xy);
//           r25.xy = r21.xy * r24.xy;
//           r21.xy = -r21.xy * r24.xy + float2(1,1);
//           r21.xy = float2(0.5,0.5) * r21.xy;
//           r25.zw = cb0[287].xx * r24.xy;
//           r25.zw = r25.zw + r25.zw;
//           r25.zw = r0.xx / r25.zw;
//           r20.xy = r20.xy * r25.xy + r21.xy;
//           r21.xy = float2(1,1) + -r25.zw;
//           r20.xy = max(r20.xy, r25.zw);
//           r20.xy = min(r20.xy, r21.xy);
//           r20.xy = r20.xy * r24.xy + r24.zw;
//           r20.xyz = t6.SampleLevel(s1_s, r20.xy, 0).xyz;
//           r19.yzw = r20.xyz * r19.yzw;
//         }
//         r19.yzw = r19.yzw * r17.www;
//         r17.w = cmp((int)r20.w >= 0);
//         r18.w = cmp(0 < r22.w);
//         r17.w = r17.w ? r18.w : 0;
//         r20.xyz = r22.www * r1.xyz + float3(1,1,1);
//         r20.xyz = r17.www ? r20.xyz : float3(1,1,1);
//         r17.w = (int)r11.w & (int)r21.w;
//         r17.w = r17.w ? 1 : 0;
//         r18.w = r23.w * r5.w + r13.w;
//         r17.w = r18.w * r17.w;
//         r17.w = -r17.w * cb0[282].z + 1;
//         r20.xyz = min(r20.xyz, r17.www);
//         r17.w = cmp(r19.x >= 0);
//         r18.w = r19.x + r9.w;
//         r18.w = saturate(-1 + r18.w);
//         r18.w = -1 + r18.w;
//         r18.w = cb0[285].x * r18.w + 1;
//         r17.w = r17.w ? r18.w : 1;
//         r21.xyz = r20.xyz * r17.www;
//         r24.xyz = float3(1,1,1) + -r22.xyz;
//         r25.xyz = r21.xyz * r21.xyz;
//         r25.xyz = r25.xyz * r21.xyz;
//         r20.xyz = -r20.xyz * r17.www + float3(1,1,1);
//         r20.xyz = -r20.xyz * r24.xyz + float3(1,1,1);
//         r21.xyz = r21.xyz * r22.xyz;
//         r21.xyz = r25.xyz * r24.xyz + r21.xyz;
//         r21.xyz = r21.xyz + -r20.xyz;
//         r20.xyz = r23.zzz * r21.xyz + r20.xyz;
//         r19.yzw = r20.xyz * r19.yzw;
//         r17.w = max(r19.y, r19.z);
//         r17.w = max(r17.w, r19.w);
//         r17.w = cmp(0 < r17.w);
//         if (r17.w != 0) {
//           r17.w = t4[r16.w].val[128/4];
//           r17.w = max(r17.w, r7.z);
//           r18.w = saturate(r19.x);
//           r18.x = dot(-r18.xyz, r5.xyz);
//           r18.y = r18.x * 2 + 2;
//           r18.y = max(5.96046448e-08, r18.y);
//           r18.y = rsqrt(r18.y);
//           r18.z = r19.x + r7.w;
//           r18.z = saturate(r18.z * r18.y);
//           r18.y = saturate(r18.y * r18.x + r18.y);
//           r18.y = 1 + -r18.y;
//           r20.x = r18.y * r18.y;
//           r20.x = r20.x * r20.x;
//           r20.y = r20.x * r18.y;
//           r18.y = -r20.x * r18.y + 1;
//           r20.xyz = r13.xyz * r18.yyy + r20.yyy;
//           r17.w = r17.w * r17.w;
//           r18.y = r18.z * r17.w + -r18.z;
//           r18.y = r18.y * r18.z + 1;
//           r18.z = -abs(r19.x) * r17.w + abs(r19.x);
//           r18.z = r18.z * abs(r19.x) + r17.w;
//           r18.z = sqrt(r18.z);
//           r18.z = r18.z * r8.w;
//           r18.y = r18.y * r18.y;
//           r18.z = abs(r19.x) * r10.w + r18.z;
//           r17.w = 0.159154937 * r17.w;
//           r18.y = r18.y * r18.z;
//           r18.y = max(1.17549435e-38, r18.y);
//           r17.w = r17.w / r18.y;
//           r20.xyz = r20.xyz * r17.www;
//           r17.w = r7.y * r18.x + r7.y;
//           r18.x = 1 + -abs(r19.x);
//           r18.y = r18.x * r18.x;
//           r18.y = r18.y * r18.y;
//           r18.x = r18.y * r18.x;
//           r17.w = -0.5 + r17.w;
//           r18.x = r17.w * r18.x + 1;
//           r17.w = r17.w * r12.w + 1;
//           r17.w = r18.x * r17.w;
//           r17.w = r18.w * r17.w;
//           r17.w = 0.30733496 * r17.w;
//           r18.xyz = r20.xyz * r18.www;
//           r20.xyz = r17.www * r19.yzw;
//           r20.xyz = r20.xyz * r23.xxx;
//           r18.xyz = r18.xyz * r19.yzw;
//           r18.xyz = r18.xyz * r23.yyy;
//         } else {
//           r20.xyz = float3(0,0,0);
//           r18.xyz = float3(0,0,0);
//         }
//       } else {
//         r20.xyz = float3(0,0,0);
//         r18.xyz = float3(0,0,0);
//       }
//       r16.xyz = r20.xyz + r16.xyz;
//       r17.xyz = r18.xyz + r17.xyz;
//     }
//     r16.w = (int)r16.w + 1;
//   }
//   if (cb0[360].x != 0) {
//     r0.x = 0.5 + r14.z;
//     r1.xyzw = t10.Load(r2.xyzw).xyzw;
//     r1.xyz = r1.xyz * r3.zzz;
//     r0.w = (int)r4.w & asint(cb0[284].y);
//     r0.w = r0.w ? cb0[284].x : 1;
//     r1.xyz = r1.xyz * r0.www;
//     r0.w = max(r13.x, r13.y);
//     r0.w = max(r0.w, r13.z);
//     r0.w = -0.200000003 + r0.w;
//     r0.w = saturate(4 * r0.w);
//     r0.w = cb0[282].w * r0.w;
//     r3.xyz = r8.xyz * r12.xyz + -r6.xyz;
//     r3.xyz = r0.www * r3.xyz + r6.xyz;
//     r3.xyz = r3.xyz * r0.xxx;
//     r1.xyz = r1.xyz * r3.xyz + -r9.xyz;
//     r9.xyz = r1.www * r1.xyz + r9.xyz;
//   }
//   r0.x = (int)r4.w & asint(cb0[284].w);
//   r0.x = r0.x ? cb0[284].z : 1;
//   r1.xyz = r10.xyz * r0.xxx;
//   r0.xy = (int2)r0.yz;
//   r0.zw = r2.zw;
//   r0.x = t12.Load(r0.xyzw).x;
//   r0.y = 1 + -r0.x;
//   r0.x = cb0[283].w * -r0.x + 1;
//   r0.z = r8.w + r0.y;
//   r0.w = r7.z * -16 + -1;
//   r0.w = exp2(r0.w);
//   r0.z = log2(abs(r0.z));
//   r0.z = r0.w * r0.z;
//   r0.z = exp2(r0.z);
//   r0.z = r0.z + r0.y;
//   r0.z = saturate(-1 + r0.z);
//   r0.z = -1 + r0.z;
//   r0.w = cb0[372].z * r0.z;
//   r0.z = cb0[372].z * r0.z + 1;
//   r0.w = cb0[283].w * r0.w + 1;
//   r0.z = min(r6.w, r0.z);
//   r3.xyz = r13.xyz * float3(2.04040003,2.04040003,2.04040003) + float3(-0.332399994,-0.332399994,-0.332399994);
//   r4.xyz = r13.xyz * float3(-4.79510021,-4.79510021,-4.79510021) + float3(0.641700029,0.641700029,0.641700029);
//   r5.xyz = r13.xyz * float3(2.75519991,2.75519991,2.75519991) + float3(0.690299988,0.690299988,0.690299988);
//   r7.yzw = r0.zzz * r3.xyz + r4.xyz;
//   r7.yzw = r7.yzw * r0.zzz + r5.xyz;
//   r7.yzw = r7.yzw * r0.zzz;
//   r7.yzw = max(r7.yzw, r0.zzz);
//   r0.y = min(1, r0.y);
//   r8.xyz = r6.xyz * float3(2.04040003,2.04040003,2.04040003) + float3(-0.332399994,-0.332399994,-0.332399994);
//   r10.xyz = r6.xyz * float3(-4.79510021,-4.79510021,-4.79510021) + float3(0.641700029,0.641700029,0.641700029);
//   r11.xyz = r6.xyz * float3(2.75519991,2.75519991,2.75519991) + float3(0.690299988,0.690299988,0.690299988);
//   r12.xyz = r0.yyy * r8.xyz + r10.xyz;
//   r12.xyz = r12.xyz * r0.yyy + r11.xyz;
//   r12.xyz = r12.xyz * r0.yyy;
//   r12.xyz = max(r12.xyz, r0.yyy);
//   r3.xyz = r0.www * r3.xyz + r4.xyz;
//   r3.xyz = r3.xyz * r0.www + r5.xyz;
//   r3.xyz = r3.xyz * r0.www;
//   r0.yzw = max(r3.xyz, r0.www);
//   r3.xyz = r0.xxx * r8.xyz + r10.xyz;
//   r3.xyz = r3.xyz * r0.xxx + r11.xyz;
//   r3.xyz = r3.xyz * r0.xxx;
//   r3.xyz = max(r3.xyz, r0.xxx);
//   r4.xyz = r12.xyz * r9.xyz;
//   r1.xyz = r7.yzw * r1.xyz;
//   r3.xyz = r16.xyz * r3.xyz;
//   r3.xyz = r6.xyz * r3.xyz + r4.xyz;
//   r0.xyz = r17.xyz * r0.yzw + r1.xyz;
//   r1.xyz = r13.xyz * r7.xxx + float3(1,1,1);
//   r0.xyz = r1.xyz * r0.xyz;
//   r0.xyz = r0.xyz * r3.www;
//   r0.xyz = r3.xyz * r3.www + r0.xyz;
//   r0.w = 1;
// // No code for instruction (needs manual fix):
// store_uav_typed u0.xyzw, r2.xyzz, r0.xyzw
//   return;
// }
//////////////////////////////// HLSL Errors ////////////////////////////////
// C:\Program Files (x86)\Steam\steamapps\common\FAR Changing Tides\ShaderFixes\50fe1008d3a5e263-cs_replace.txt(105,10): error X3000: syntax error: unexpected token ')'
/////////////////////////////////////////////////////////////////////////////
